markform 0.1.12 → 0.1.14

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.
@@ -126,25 +126,51 @@ turns:
126
126
  context:
127
127
  system_prompt: |-
128
128
  # Form Instructions
129
- Carefully research answers to all questions in the form, using all available tools you have.
130
129
 
131
- Guidelines:
132
- 1. Focus on required fields first (severity: "required"), then address optional fields (severity: "recommended")
133
- 2. You MUST address ALL issues shown to you - both required AND recommended (optional)
134
- 3. NEVER fabricate or guess information - only use data you can verify
135
- 4. If you cannot find verifiable information for a field, use skip_field to mark it as skipped with a reason
136
- 5. For string fields: use appropriate text from verified sources
137
- 6. For number fields: use appropriate numeric values from verified sources
138
- 7. For single_select: choose one valid option ID
139
- 8. For multi_select: choose one or more valid option IDs
140
- 9. For checkboxes: use the appropriate state for the checkbox mode:
141
- - Mode "simple": done (checked) or todo (unchecked)
142
- - Mode "multi": done, todo, or na (not applicable)
143
- - Mode "explicit": yes or no (must explicitly answer)
130
+ Research and fill the form fields using all available tools. Focus on accuracy over completeness.
144
131
 
145
- CRITICAL: Accuracy is more important than completeness. Use skip_field when information cannot be verified.
132
+ ## Guidelines
133
+ 1. Address required fields first (severity: "required"), then optional fields (severity: "recommended")
134
+ 2. NEVER fabricate or guess information - only use data you can verify
135
+ 3. If you cannot find verifiable information, use skip_field with a reason
146
136
 
147
- Always use the fill_form tool to submit your field values.
137
+ ## Patch Format Examples
138
+
139
+ Use the fill_form tool with patches in these formats:
140
+
141
+ | Type | Example |
142
+ |------|---------|
143
+ | string | `{ op: "set_string", fieldId: "name", value: "Acme Corp" }` |
144
+ | number | `{ op: "set_number", fieldId: "age", value: 32 }` |
145
+ | string_list | `{ op: "set_string_list", fieldId: "tags", value: ["ai", "ml"] }` |
146
+ | url | `{ op: "set_url", fieldId: "website", value: "https://example.com" }` |
147
+ | url_list | `{ op: "set_url_list", fieldId: "sources", value: ["https://a.com", "https://b.com"] }` |
148
+ | date | `{ op: "set_date", fieldId: "event_date", value: "2024-06-15" }` |
149
+ | year | `{ op: "set_year", fieldId: "founded", value: 2024 }` |
150
+ | single_select | `{ op: "set_single_select", fieldId: "priority", value: "high" }` |
151
+ | multi_select | `{ op: "set_multi_select", fieldId: "categories", value: ["frontend", "backend"] }` |
152
+ | checkboxes | `{ op: "set_checkboxes", fieldId: "tasks", value: { "task1": "done", "task2": "todo" } }` |
153
+ | table | `{ op: "set_table", fieldId: "team", value: [{ "name": "Alice", "role": "Engineer" }] }` |
154
+
155
+ ## Important: checkboxes vs multi_select
156
+
157
+ These two types look similar but have DIFFERENT value formats:
158
+
159
+ - **multi_select** → array of option IDs: `["opt1", "opt2"]`
160
+ - **checkboxes** → object mapping IDs to states: `{ "opt1": "done", "opt2": "todo" }`
161
+
162
+ **Checkbox states by mode:**
163
+ - Mode "simple": `"done"` or `"todo"`
164
+ - Mode "multi": `"done"`, `"todo"`, `"incomplete"`, `"active"`, or `"na"`
165
+ - Mode "explicit": `"yes"` or `"no"` (if unknown, use abort_field)
166
+
167
+ **WRONG:** `{ op: "set_checkboxes", value: ["task1", "task2"] }`
168
+ **RIGHT:** `{ op: "set_checkboxes", value: { "task1": "done", "task2": "done" } }`
169
+
170
+ ## Skipping Fields
171
+
172
+ If you cannot find verifiable information:
173
+ `{ op: "skip_field", fieldId: "...", reason: "Could not find verified data" }`
148
174
 
149
175
 
150
176
  # Instructions for agent role
@@ -345,14 +371,14 @@ turns:
345
371
  - **age** (field): Required field "Age" is empty
346
372
  Severity: required, Priority: P1
347
373
  Type: number
348
- Set: { op: "set_number", fieldId: "age", value: 123 }
374
+ Set: { op: "set_number", fieldId: "age", value: 42 }
349
375
  This field is required.
350
376
 
351
377
  - **categories** (field): Required field "Categories" has no selections
352
378
  Severity: required, Priority: P1
353
379
  Type: multi_select
354
380
  Options: frontend, backend, database, devops
355
- Set: { op: "set_multi_select", fieldId: "categories", selected: ["opt1", "opt2"] }
381
+ Set: { op: "set_multi_select", fieldId: "categories", value: ["opt1", "opt2"] }
356
382
  This field is required.
357
383
 
358
384
  - **confirmations** (field): All items in "Confirmations (Explicit Mode)" must be answered (2 unfilled)
@@ -360,19 +386,19 @@ turns:
360
386
  Type: checkboxes
361
387
  Options: backed_up, notified
362
388
  Mode: explicit
363
- Set: { op: "set_checkboxes", fieldId: "confirmations", values: { "opt1": "done", "opt2": "todo" } }
389
+ Set: { op: "set_checkboxes", fieldId: "confirmations", value: { "backed_up": "yes", "notified": "no" } }
364
390
  This field is required.
365
391
 
366
392
  - **email** (field): Required field "Email" is empty
367
393
  Severity: required, Priority: P1
368
394
  Type: string
369
- Set: { op: "set_string", fieldId: "email", value: "..." }
395
+ Set: { op: "set_string", fieldId: "email", value: "text here" }
370
396
  This field is required.
371
397
 
372
398
  - **event_date** (field): Required field "Event Date" is empty
373
399
  Severity: required, Priority: P1
374
400
  Type: date
375
- Set: { op: "set_date", fieldId: "event_date", value: "2024-01-15" }
401
+ Set: { op: "set_date", fieldId: "event_date", value: "2024-06-15" }
376
402
  This field is required.
377
403
 
378
404
  - **founded_year** (field): Required field "Founded Year" is empty
@@ -384,20 +410,20 @@ turns:
384
410
  - **name** (field): Required field "Name" is empty
385
411
  Severity: required, Priority: P1
386
412
  Type: string
387
- Set: { op: "set_string", fieldId: "name", value: "..." }
413
+ Set: { op: "set_string", fieldId: "name", value: "text here" }
388
414
  This field is required.
389
415
 
390
416
  - **priority** (field): Required field "Priority" has no selection
391
417
  Severity: required, Priority: P1
392
418
  Type: single_select
393
419
  Options: low, medium, high
394
- Set: { op: "set_single_select", fieldId: "priority", selected: "option_id" }
420
+ Set: { op: "set_single_select", fieldId: "priority", value: "option_id" }
395
421
  This field is required.
396
422
 
397
423
  - **tags** (field): Required field "Tags" is empty
398
424
  Severity: required, Priority: P1
399
425
  Type: string_list
400
- Set: { op: "set_string_list", fieldId: "tags", items: ["...", "..."] }
426
+ Set: { op: "set_string_list", fieldId: "tags", value: ["item1", "item2"] }
401
427
  This field is required.
402
428
 
403
429
  - **tasks_multi** (field): All items in "Tasks (Multi Mode)" must be completed
@@ -405,7 +431,7 @@ turns:
405
431
  Type: checkboxes
406
432
  Options: research, design, implement, test
407
433
  Mode: multi
408
- Set: { op: "set_checkboxes", fieldId: "tasks_multi", values: { "opt1": "done", "opt2": "todo" } }
434
+ Set: { op: "set_checkboxes", fieldId: "tasks_multi", value: { "research": "done", "design": "todo" } }
409
435
  This field is required.
410
436
 
411
437
  # General Instructions
@@ -416,25 +442,51 @@ turns:
416
442
  request:
417
443
  system: |-
418
444
  # Form Instructions
419
- Carefully research answers to all questions in the form, using all available tools you have.
420
445
 
421
- Guidelines:
422
- 1. Focus on required fields first (severity: "required"), then address optional fields (severity: "recommended")
423
- 2. You MUST address ALL issues shown to you - both required AND recommended (optional)
424
- 3. NEVER fabricate or guess information - only use data you can verify
425
- 4. If you cannot find verifiable information for a field, use skip_field to mark it as skipped with a reason
426
- 5. For string fields: use appropriate text from verified sources
427
- 6. For number fields: use appropriate numeric values from verified sources
428
- 7. For single_select: choose one valid option ID
429
- 8. For multi_select: choose one or more valid option IDs
430
- 9. For checkboxes: use the appropriate state for the checkbox mode:
431
- - Mode "simple": done (checked) or todo (unchecked)
432
- - Mode "multi": done, todo, or na (not applicable)
433
- - Mode "explicit": yes or no (must explicitly answer)
446
+ Research and fill the form fields using all available tools. Focus on accuracy over completeness.
447
+
448
+ ## Guidelines
449
+ 1. Address required fields first (severity: "required"), then optional fields (severity: "recommended")
450
+ 2. NEVER fabricate or guess information - only use data you can verify
451
+ 3. If you cannot find verifiable information, use skip_field with a reason
452
+
453
+ ## Patch Format Examples
454
+
455
+ Use the fill_form tool with patches in these formats:
456
+
457
+ | Type | Example |
458
+ |------|---------|
459
+ | string | `{ op: "set_string", fieldId: "name", value: "Acme Corp" }` |
460
+ | number | `{ op: "set_number", fieldId: "age", value: 32 }` |
461
+ | string_list | `{ op: "set_string_list", fieldId: "tags", value: ["ai", "ml"] }` |
462
+ | url | `{ op: "set_url", fieldId: "website", value: "https://example.com" }` |
463
+ | url_list | `{ op: "set_url_list", fieldId: "sources", value: ["https://a.com", "https://b.com"] }` |
464
+ | date | `{ op: "set_date", fieldId: "event_date", value: "2024-06-15" }` |
465
+ | year | `{ op: "set_year", fieldId: "founded", value: 2024 }` |
466
+ | single_select | `{ op: "set_single_select", fieldId: "priority", value: "high" }` |
467
+ | multi_select | `{ op: "set_multi_select", fieldId: "categories", value: ["frontend", "backend"] }` |
468
+ | checkboxes | `{ op: "set_checkboxes", fieldId: "tasks", value: { "task1": "done", "task2": "todo" } }` |
469
+ | table | `{ op: "set_table", fieldId: "team", value: [{ "name": "Alice", "role": "Engineer" }] }` |
470
+
471
+ ## Important: checkboxes vs multi_select
472
+
473
+ These two types look similar but have DIFFERENT value formats:
434
474
 
435
- CRITICAL: Accuracy is more important than completeness. Use skip_field when information cannot be verified.
475
+ - **multi_select** array of option IDs: `["opt1", "opt2"]`
476
+ - **checkboxes** → object mapping IDs to states: `{ "opt1": "done", "opt2": "todo" }`
436
477
 
437
- Always use the fill_form tool to submit your field values.
478
+ **Checkbox states by mode:**
479
+ - Mode "simple": `"done"` or `"todo"`
480
+ - Mode "multi": `"done"`, `"todo"`, `"incomplete"`, `"active"`, or `"na"`
481
+ - Mode "explicit": `"yes"` or `"no"` (if unknown, use abort_field)
482
+
483
+ **WRONG:** `{ op: "set_checkboxes", value: ["task1", "task2"] }`
484
+ **RIGHT:** `{ op: "set_checkboxes", value: { "task1": "done", "task2": "done" } }`
485
+
486
+ ## Skipping Fields
487
+
488
+ If you cannot find verifiable information:
489
+ `{ op: "skip_field", fieldId: "...", reason: "Could not find verified data" }`
438
490
 
439
491
 
440
492
  # Instructions for agent role
@@ -635,14 +687,14 @@ turns:
635
687
  - **age** (field): Required field "Age" is empty
636
688
  Severity: required, Priority: P1
637
689
  Type: number
638
- Set: { op: "set_number", fieldId: "age", value: 123 }
690
+ Set: { op: "set_number", fieldId: "age", value: 42 }
639
691
  This field is required.
640
692
 
641
693
  - **categories** (field): Required field "Categories" has no selections
642
694
  Severity: required, Priority: P1
643
695
  Type: multi_select
644
696
  Options: frontend, backend, database, devops
645
- Set: { op: "set_multi_select", fieldId: "categories", selected: ["opt1", "opt2"] }
697
+ Set: { op: "set_multi_select", fieldId: "categories", value: ["opt1", "opt2"] }
646
698
  This field is required.
647
699
 
648
700
  - **confirmations** (field): All items in "Confirmations (Explicit Mode)" must be answered (2 unfilled)
@@ -650,19 +702,19 @@ turns:
650
702
  Type: checkboxes
651
703
  Options: backed_up, notified
652
704
  Mode: explicit
653
- Set: { op: "set_checkboxes", fieldId: "confirmations", values: { "opt1": "done", "opt2": "todo" } }
705
+ Set: { op: "set_checkboxes", fieldId: "confirmations", value: { "backed_up": "yes", "notified": "no" } }
654
706
  This field is required.
655
707
 
656
708
  - **email** (field): Required field "Email" is empty
657
709
  Severity: required, Priority: P1
658
710
  Type: string
659
- Set: { op: "set_string", fieldId: "email", value: "..." }
711
+ Set: { op: "set_string", fieldId: "email", value: "text here" }
660
712
  This field is required.
661
713
 
662
714
  - **event_date** (field): Required field "Event Date" is empty
663
715
  Severity: required, Priority: P1
664
716
  Type: date
665
- Set: { op: "set_date", fieldId: "event_date", value: "2024-01-15" }
717
+ Set: { op: "set_date", fieldId: "event_date", value: "2024-06-15" }
666
718
  This field is required.
667
719
 
668
720
  - **founded_year** (field): Required field "Founded Year" is empty
@@ -674,20 +726,20 @@ turns:
674
726
  - **name** (field): Required field "Name" is empty
675
727
  Severity: required, Priority: P1
676
728
  Type: string
677
- Set: { op: "set_string", fieldId: "name", value: "..." }
729
+ Set: { op: "set_string", fieldId: "name", value: "text here" }
678
730
  This field is required.
679
731
 
680
732
  - **priority** (field): Required field "Priority" has no selection
681
733
  Severity: required, Priority: P1
682
734
  Type: single_select
683
735
  Options: low, medium, high
684
- Set: { op: "set_single_select", fieldId: "priority", selected: "option_id" }
736
+ Set: { op: "set_single_select", fieldId: "priority", value: "option_id" }
685
737
  This field is required.
686
738
 
687
739
  - **tags** (field): Required field "Tags" is empty
688
740
  Severity: required, Priority: P1
689
741
  Type: string_list
690
- Set: { op: "set_string_list", fieldId: "tags", items: ["...", "..."] }
742
+ Set: { op: "set_string_list", fieldId: "tags", value: ["item1", "item2"] }
691
743
  This field is required.
692
744
 
693
745
  - **tasks_multi** (field): All items in "Tasks (Multi Mode)" must be completed
@@ -695,7 +747,7 @@ turns:
695
747
  Type: checkboxes
696
748
  Options: research, design, implement, test
697
749
  Mode: multi
698
- Set: { op: "set_checkboxes", fieldId: "tasks_multi", values: { "opt1": "done", "opt2": "todo" } }
750
+ Set: { op: "set_checkboxes", fieldId: "tasks_multi", value: { "research": "done", "design": "todo" } }
699
751
  This field is required.
700
752
 
701
753
  # General Instructions
@@ -712,7 +764,7 @@ turns:
712
764
  properties:
713
765
  patches:
714
766
  description: Array of patches to apply to the form
715
- value:
767
+ items:
716
768
  $ref: '#/$defs/patch'
717
769
  type: array
718
770
  required:
@@ -753,11 +805,11 @@ turns:
753
805
  op: set_single_select
754
806
  value: medium
755
807
  - field_id: tags
808
+ op: set_string_list
756
809
  value:
757
810
  - typescript
758
811
  - testing
759
812
  - forms
760
- op: set_string_list
761
813
  - field_id: tasks_multi
762
814
  op: set_checkboxes
763
815
  value:
@@ -882,25 +934,51 @@ turns:
882
934
  context:
883
935
  system_prompt: |-
884
936
  # Form Instructions
885
- Carefully research answers to all questions in the form, using all available tools you have.
886
937
 
887
- Guidelines:
888
- 1. Focus on required fields first (severity: "required"), then address optional fields (severity: "recommended")
889
- 2. You MUST address ALL issues shown to you - both required AND recommended (optional)
890
- 3. NEVER fabricate or guess information - only use data you can verify
891
- 4. If you cannot find verifiable information for a field, use skip_field to mark it as skipped with a reason
892
- 5. For string fields: use appropriate text from verified sources
893
- 6. For number fields: use appropriate numeric values from verified sources
894
- 7. For single_select: choose one valid option ID
895
- 8. For multi_select: choose one or more valid option IDs
896
- 9. For checkboxes: use the appropriate state for the checkbox mode:
897
- - Mode "simple": done (checked) or todo (unchecked)
898
- - Mode "multi": done, todo, or na (not applicable)
899
- - Mode "explicit": yes or no (must explicitly answer)
938
+ Research and fill the form fields using all available tools. Focus on accuracy over completeness.
939
+
940
+ ## Guidelines
941
+ 1. Address required fields first (severity: "required"), then optional fields (severity: "recommended")
942
+ 2. NEVER fabricate or guess information - only use data you can verify
943
+ 3. If you cannot find verifiable information, use skip_field with a reason
944
+
945
+ ## Patch Format Examples
946
+
947
+ Use the fill_form tool with patches in these formats:
948
+
949
+ | Type | Example |
950
+ |------|---------|
951
+ | string | `{ op: "set_string", fieldId: "name", value: "Acme Corp" }` |
952
+ | number | `{ op: "set_number", fieldId: "age", value: 32 }` |
953
+ | string_list | `{ op: "set_string_list", fieldId: "tags", value: ["ai", "ml"] }` |
954
+ | url | `{ op: "set_url", fieldId: "website", value: "https://example.com" }` |
955
+ | url_list | `{ op: "set_url_list", fieldId: "sources", value: ["https://a.com", "https://b.com"] }` |
956
+ | date | `{ op: "set_date", fieldId: "event_date", value: "2024-06-15" }` |
957
+ | year | `{ op: "set_year", fieldId: "founded", value: 2024 }` |
958
+ | single_select | `{ op: "set_single_select", fieldId: "priority", value: "high" }` |
959
+ | multi_select | `{ op: "set_multi_select", fieldId: "categories", value: ["frontend", "backend"] }` |
960
+ | checkboxes | `{ op: "set_checkboxes", fieldId: "tasks", value: { "task1": "done", "task2": "todo" } }` |
961
+ | table | `{ op: "set_table", fieldId: "team", value: [{ "name": "Alice", "role": "Engineer" }] }` |
962
+
963
+ ## Important: checkboxes vs multi_select
964
+
965
+ These two types look similar but have DIFFERENT value formats:
966
+
967
+ - **multi_select** → array of option IDs: `["opt1", "opt2"]`
968
+ - **checkboxes** → object mapping IDs to states: `{ "opt1": "done", "opt2": "todo" }`
969
+
970
+ **Checkbox states by mode:**
971
+ - Mode "simple": `"done"` or `"todo"`
972
+ - Mode "multi": `"done"`, `"todo"`, `"incomplete"`, `"active"`, or `"na"`
973
+ - Mode "explicit": `"yes"` or `"no"` (if unknown, use abort_field)
974
+
975
+ **WRONG:** `{ op: "set_checkboxes", value: ["task1", "task2"] }`
976
+ **RIGHT:** `{ op: "set_checkboxes", value: { "task1": "done", "task2": "done" } }`
900
977
 
901
- CRITICAL: Accuracy is more important than completeness. Use skip_field when information cannot be verified.
978
+ ## Skipping Fields
902
979
 
903
- Always use the fill_form tool to submit your field values.
980
+ If you cannot find verifiable information:
981
+ `{ op: "skip_field", fieldId: "...", reason: "Could not find verified data" }`
904
982
 
905
983
 
906
984
  # Instructions for agent role
@@ -1131,31 +1209,31 @@ turns:
1131
1209
  Type: checkboxes
1132
1210
  Options: read_guidelines, agree_terms
1133
1211
  Mode: simple
1134
- Set: { op: "set_checkboxes", fieldId: "tasks_simple", values: { "opt1": "done", "opt2": "todo" } }
1212
+ Set: { op: "set_checkboxes", fieldId: "tasks_simple", value: { "read_guidelines": "done", "agree_terms": "todo" } }
1135
1213
  This field is required.
1136
1214
 
1137
1215
  - **website** (field): Required field "Website" is empty
1138
1216
  Severity: required, Priority: P1
1139
1217
  Type: url
1140
- Set: { op: "set_url", fieldId: "website", value: "https://..." }
1218
+ Set: { op: "set_url", fieldId: "website", value: "https://example.com" }
1141
1219
  This field is required.
1142
1220
 
1143
1221
  - **notes** (field): Optional field not yet addressed
1144
1222
  Severity: recommended, Priority: P3
1145
1223
  Type: string
1146
- Set: { op: "set_string", fieldId: "notes", value: "..." }
1224
+ Set: { op: "set_string", fieldId: "notes", value: "text here" }
1147
1225
  Skip: { op: "skip_field", fieldId: "notes", reason: "..." }
1148
1226
 
1149
1227
  - **optional_date** (field): Optional field not yet addressed
1150
1228
  Severity: recommended, Priority: P3
1151
1229
  Type: date
1152
- Set: { op: "set_date", fieldId: "optional_date", value: "2024-01-15" }
1230
+ Set: { op: "set_date", fieldId: "optional_date", value: "2024-06-15" }
1153
1231
  Skip: { op: "skip_field", fieldId: "optional_date", reason: "..." }
1154
1232
 
1155
1233
  - **optional_number** (field): Optional field not yet addressed
1156
1234
  Severity: recommended, Priority: P3
1157
1235
  Type: number
1158
- Set: { op: "set_number", fieldId: "optional_number", value: 123 }
1236
+ Set: { op: "set_number", fieldId: "optional_number", value: 42 }
1159
1237
  Skip: { op: "skip_field", fieldId: "optional_number", reason: "..." }
1160
1238
 
1161
1239
  - **optional_year** (field): Optional field not yet addressed
@@ -1169,25 +1247,25 @@ turns:
1169
1247
  Type: table
1170
1248
  Columns: task (required), estimate_hrs, link
1171
1249
  Rows: min: 0, max: 10
1172
- Set: { op: "set_table", fieldId: "project_tasks", rows: [{ "task": "...", "estimate_hrs": "...", "link": "..." }, ...] }
1250
+ Set: { op: "set_table", fieldId: "project_tasks", value: [{ "task": "...", "estimate_hrs": "...", "link": "..." }] }
1173
1251
  Skip: { op: "skip_field", fieldId: "project_tasks", reason: "..." }
1174
1252
 
1175
1253
  - **references** (field): Optional field not yet addressed
1176
1254
  Severity: recommended, Priority: P3
1177
1255
  Type: url_list
1178
- Set: { op: "set_url_list", fieldId: "references", items: ["https://...", "https://..."] }
1256
+ Set: { op: "set_url_list", fieldId: "references", value: ["https://a.com", "https://b.com"] }
1179
1257
  Skip: { op: "skip_field", fieldId: "references", reason: "..." }
1180
1258
 
1181
1259
  - **related_url** (field): Optional field not yet addressed
1182
1260
  Severity: recommended, Priority: P3
1183
1261
  Type: url
1184
- Set: { op: "set_url", fieldId: "related_url", value: "https://..." }
1262
+ Set: { op: "set_url", fieldId: "related_url", value: "https://example.com" }
1185
1263
  Skip: { op: "skip_field", fieldId: "related_url", reason: "..." }
1186
1264
 
1187
1265
  - **score** (field): Optional field not yet addressed
1188
1266
  Severity: recommended, Priority: P3
1189
1267
  Type: number
1190
- Set: { op: "set_number", fieldId: "score", value: 123 }
1268
+ Set: { op: "set_number", fieldId: "score", value: 42 }
1191
1269
  Skip: { op: "skip_field", fieldId: "score", reason: "..." }
1192
1270
 
1193
1271
  # General Instructions
@@ -1198,25 +1276,51 @@ turns:
1198
1276
  request:
1199
1277
  system: |-
1200
1278
  # Form Instructions
1201
- Carefully research answers to all questions in the form, using all available tools you have.
1202
1279
 
1203
- Guidelines:
1204
- 1. Focus on required fields first (severity: "required"), then address optional fields (severity: "recommended")
1205
- 2. You MUST address ALL issues shown to you - both required AND recommended (optional)
1206
- 3. NEVER fabricate or guess information - only use data you can verify
1207
- 4. If you cannot find verifiable information for a field, use skip_field to mark it as skipped with a reason
1208
- 5. For string fields: use appropriate text from verified sources
1209
- 6. For number fields: use appropriate numeric values from verified sources
1210
- 7. For single_select: choose one valid option ID
1211
- 8. For multi_select: choose one or more valid option IDs
1212
- 9. For checkboxes: use the appropriate state for the checkbox mode:
1213
- - Mode "simple": done (checked) or todo (unchecked)
1214
- - Mode "multi": done, todo, or na (not applicable)
1215
- - Mode "explicit": yes or no (must explicitly answer)
1280
+ Research and fill the form fields using all available tools. Focus on accuracy over completeness.
1216
1281
 
1217
- CRITICAL: Accuracy is more important than completeness. Use skip_field when information cannot be verified.
1282
+ ## Guidelines
1283
+ 1. Address required fields first (severity: "required"), then optional fields (severity: "recommended")
1284
+ 2. NEVER fabricate or guess information - only use data you can verify
1285
+ 3. If you cannot find verifiable information, use skip_field with a reason
1218
1286
 
1219
- Always use the fill_form tool to submit your field values.
1287
+ ## Patch Format Examples
1288
+
1289
+ Use the fill_form tool with patches in these formats:
1290
+
1291
+ | Type | Example |
1292
+ |------|---------|
1293
+ | string | `{ op: "set_string", fieldId: "name", value: "Acme Corp" }` |
1294
+ | number | `{ op: "set_number", fieldId: "age", value: 32 }` |
1295
+ | string_list | `{ op: "set_string_list", fieldId: "tags", value: ["ai", "ml"] }` |
1296
+ | url | `{ op: "set_url", fieldId: "website", value: "https://example.com" }` |
1297
+ | url_list | `{ op: "set_url_list", fieldId: "sources", value: ["https://a.com", "https://b.com"] }` |
1298
+ | date | `{ op: "set_date", fieldId: "event_date", value: "2024-06-15" }` |
1299
+ | year | `{ op: "set_year", fieldId: "founded", value: 2024 }` |
1300
+ | single_select | `{ op: "set_single_select", fieldId: "priority", value: "high" }` |
1301
+ | multi_select | `{ op: "set_multi_select", fieldId: "categories", value: ["frontend", "backend"] }` |
1302
+ | checkboxes | `{ op: "set_checkboxes", fieldId: "tasks", value: { "task1": "done", "task2": "todo" } }` |
1303
+ | table | `{ op: "set_table", fieldId: "team", value: [{ "name": "Alice", "role": "Engineer" }] }` |
1304
+
1305
+ ## Important: checkboxes vs multi_select
1306
+
1307
+ These two types look similar but have DIFFERENT value formats:
1308
+
1309
+ - **multi_select** → array of option IDs: `["opt1", "opt2"]`
1310
+ - **checkboxes** → object mapping IDs to states: `{ "opt1": "done", "opt2": "todo" }`
1311
+
1312
+ **Checkbox states by mode:**
1313
+ - Mode "simple": `"done"` or `"todo"`
1314
+ - Mode "multi": `"done"`, `"todo"`, `"incomplete"`, `"active"`, or `"na"`
1315
+ - Mode "explicit": `"yes"` or `"no"` (if unknown, use abort_field)
1316
+
1317
+ **WRONG:** `{ op: "set_checkboxes", value: ["task1", "task2"] }`
1318
+ **RIGHT:** `{ op: "set_checkboxes", value: { "task1": "done", "task2": "done" } }`
1319
+
1320
+ ## Skipping Fields
1321
+
1322
+ If you cannot find verifiable information:
1323
+ `{ op: "skip_field", fieldId: "...", reason: "Could not find verified data" }`
1220
1324
 
1221
1325
 
1222
1326
  # Instructions for agent role
@@ -1447,31 +1551,31 @@ turns:
1447
1551
  Type: checkboxes
1448
1552
  Options: read_guidelines, agree_terms
1449
1553
  Mode: simple
1450
- Set: { op: "set_checkboxes", fieldId: "tasks_simple", values: { "opt1": "done", "opt2": "todo" } }
1554
+ Set: { op: "set_checkboxes", fieldId: "tasks_simple", value: { "read_guidelines": "done", "agree_terms": "todo" } }
1451
1555
  This field is required.
1452
1556
 
1453
1557
  - **website** (field): Required field "Website" is empty
1454
1558
  Severity: required, Priority: P1
1455
1559
  Type: url
1456
- Set: { op: "set_url", fieldId: "website", value: "https://..." }
1560
+ Set: { op: "set_url", fieldId: "website", value: "https://example.com" }
1457
1561
  This field is required.
1458
1562
 
1459
1563
  - **notes** (field): Optional field not yet addressed
1460
1564
  Severity: recommended, Priority: P3
1461
1565
  Type: string
1462
- Set: { op: "set_string", fieldId: "notes", value: "..." }
1566
+ Set: { op: "set_string", fieldId: "notes", value: "text here" }
1463
1567
  Skip: { op: "skip_field", fieldId: "notes", reason: "..." }
1464
1568
 
1465
1569
  - **optional_date** (field): Optional field not yet addressed
1466
1570
  Severity: recommended, Priority: P3
1467
1571
  Type: date
1468
- Set: { op: "set_date", fieldId: "optional_date", value: "2024-01-15" }
1572
+ Set: { op: "set_date", fieldId: "optional_date", value: "2024-06-15" }
1469
1573
  Skip: { op: "skip_field", fieldId: "optional_date", reason: "..." }
1470
1574
 
1471
1575
  - **optional_number** (field): Optional field not yet addressed
1472
1576
  Severity: recommended, Priority: P3
1473
1577
  Type: number
1474
- Set: { op: "set_number", fieldId: "optional_number", value: 123 }
1578
+ Set: { op: "set_number", fieldId: "optional_number", value: 42 }
1475
1579
  Skip: { op: "skip_field", fieldId: "optional_number", reason: "..." }
1476
1580
 
1477
1581
  - **optional_year** (field): Optional field not yet addressed
@@ -1485,25 +1589,25 @@ turns:
1485
1589
  Type: table
1486
1590
  Columns: task (required), estimate_hrs, link
1487
1591
  Rows: min: 0, max: 10
1488
- Set: { op: "set_table", fieldId: "project_tasks", rows: [{ "task": "...", "estimate_hrs": "...", "link": "..." }, ...] }
1592
+ Set: { op: "set_table", fieldId: "project_tasks", value: [{ "task": "...", "estimate_hrs": "...", "link": "..." }] }
1489
1593
  Skip: { op: "skip_field", fieldId: "project_tasks", reason: "..." }
1490
1594
 
1491
1595
  - **references** (field): Optional field not yet addressed
1492
1596
  Severity: recommended, Priority: P3
1493
1597
  Type: url_list
1494
- Set: { op: "set_url_list", fieldId: "references", items: ["https://...", "https://..."] }
1598
+ Set: { op: "set_url_list", fieldId: "references", value: ["https://a.com", "https://b.com"] }
1495
1599
  Skip: { op: "skip_field", fieldId: "references", reason: "..." }
1496
1600
 
1497
1601
  - **related_url** (field): Optional field not yet addressed
1498
1602
  Severity: recommended, Priority: P3
1499
1603
  Type: url
1500
- Set: { op: "set_url", fieldId: "related_url", value: "https://..." }
1604
+ Set: { op: "set_url", fieldId: "related_url", value: "https://example.com" }
1501
1605
  Skip: { op: "skip_field", fieldId: "related_url", reason: "..." }
1502
1606
 
1503
1607
  - **score** (field): Optional field not yet addressed
1504
1608
  Severity: recommended, Priority: P3
1505
1609
  Type: number
1506
- Set: { op: "set_number", fieldId: "score", value: 123 }
1610
+ Set: { op: "set_number", fieldId: "score", value: 42 }
1507
1611
  Skip: { op: "skip_field", fieldId: "score", reason: "..." }
1508
1612
 
1509
1613
  # General Instructions
@@ -1520,7 +1624,7 @@ turns:
1520
1624
  properties:
1521
1625
  patches:
1522
1626
  description: Array of patches to apply to the form
1523
- value:
1627
+ items:
1524
1628
  $ref: '#/$defs/patch'
1525
1629
  type: array
1526
1630
  required:
@@ -1560,11 +1664,11 @@ turns:
1560
1664
  reason: No value in mock form
1561
1665
  role: agent
1562
1666
  - field_id: references
1667
+ op: set_url_list
1563
1668
  value:
1564
1669
  - https://docs.example.com/guide
1565
1670
  - https://github.com/example/project
1566
1671
  - https://medium.com/article-about-forms
1567
- op: set_url_list
1568
1672
  - field_id: related_url
1569
1673
  op: set_url
1570
1674
  value: https://markform.dev/docs
@@ -1604,25 +1708,51 @@ turns:
1604
1708
  context:
1605
1709
  system_prompt: |-
1606
1710
  # Form Instructions
1607
- Carefully research answers to all questions in the form, using all available tools you have.
1608
1711
 
1609
- Guidelines:
1610
- 1. Focus on required fields first (severity: "required"), then address optional fields (severity: "recommended")
1611
- 2. You MUST address ALL issues shown to you - both required AND recommended (optional)
1612
- 3. NEVER fabricate or guess information - only use data you can verify
1613
- 4. If you cannot find verifiable information for a field, use skip_field to mark it as skipped with a reason
1614
- 5. For string fields: use appropriate text from verified sources
1615
- 6. For number fields: use appropriate numeric values from verified sources
1616
- 7. For single_select: choose one valid option ID
1617
- 8. For multi_select: choose one or more valid option IDs
1618
- 9. For checkboxes: use the appropriate state for the checkbox mode:
1619
- - Mode "simple": done (checked) or todo (unchecked)
1620
- - Mode "multi": done, todo, or na (not applicable)
1621
- - Mode "explicit": yes or no (must explicitly answer)
1712
+ Research and fill the form fields using all available tools. Focus on accuracy over completeness.
1713
+
1714
+ ## Guidelines
1715
+ 1. Address required fields first (severity: "required"), then optional fields (severity: "recommended")
1716
+ 2. NEVER fabricate or guess information - only use data you can verify
1717
+ 3. If you cannot find verifiable information, use skip_field with a reason
1718
+
1719
+ ## Patch Format Examples
1720
+
1721
+ Use the fill_form tool with patches in these formats:
1722
+
1723
+ | Type | Example |
1724
+ |------|---------|
1725
+ | string | `{ op: "set_string", fieldId: "name", value: "Acme Corp" }` |
1726
+ | number | `{ op: "set_number", fieldId: "age", value: 32 }` |
1727
+ | string_list | `{ op: "set_string_list", fieldId: "tags", value: ["ai", "ml"] }` |
1728
+ | url | `{ op: "set_url", fieldId: "website", value: "https://example.com" }` |
1729
+ | url_list | `{ op: "set_url_list", fieldId: "sources", value: ["https://a.com", "https://b.com"] }` |
1730
+ | date | `{ op: "set_date", fieldId: "event_date", value: "2024-06-15" }` |
1731
+ | year | `{ op: "set_year", fieldId: "founded", value: 2024 }` |
1732
+ | single_select | `{ op: "set_single_select", fieldId: "priority", value: "high" }` |
1733
+ | multi_select | `{ op: "set_multi_select", fieldId: "categories", value: ["frontend", "backend"] }` |
1734
+ | checkboxes | `{ op: "set_checkboxes", fieldId: "tasks", value: { "task1": "done", "task2": "todo" } }` |
1735
+ | table | `{ op: "set_table", fieldId: "team", value: [{ "name": "Alice", "role": "Engineer" }] }` |
1622
1736
 
1623
- CRITICAL: Accuracy is more important than completeness. Use skip_field when information cannot be verified.
1737
+ ## Important: checkboxes vs multi_select
1624
1738
 
1625
- Always use the fill_form tool to submit your field values.
1739
+ These two types look similar but have DIFFERENT value formats:
1740
+
1741
+ - **multi_select** → array of option IDs: `["opt1", "opt2"]`
1742
+ - **checkboxes** → object mapping IDs to states: `{ "opt1": "done", "opt2": "todo" }`
1743
+
1744
+ **Checkbox states by mode:**
1745
+ - Mode "simple": `"done"` or `"todo"`
1746
+ - Mode "multi": `"done"`, `"todo"`, `"incomplete"`, `"active"`, or `"na"`
1747
+ - Mode "explicit": `"yes"` or `"no"` (if unknown, use abort_field)
1748
+
1749
+ **WRONG:** `{ op: "set_checkboxes", value: ["task1", "task2"] }`
1750
+ **RIGHT:** `{ op: "set_checkboxes", value: { "task1": "done", "task2": "done" } }`
1751
+
1752
+ ## Skipping Fields
1753
+
1754
+ If you cannot find verifiable information:
1755
+ `{ op: "skip_field", fieldId: "...", reason: "Could not find verified data" }`
1626
1756
 
1627
1757
 
1628
1758
  # Instructions for agent role
@@ -1884,7 +2014,7 @@ turns:
1884
2014
  Type: table
1885
2015
  Columns: name (required), role, start_date
1886
2016
  Rows: min: 0, max: 5
1887
- Set: { op: "set_table", fieldId: "team_members", rows: [{ "name": "...", "role": "...", "start_date": "..." }, ...] }
2017
+ Set: { op: "set_table", fieldId: "team_members", value: [{ "name": "...", "role": "...", "start_date": "..." }] }
1888
2018
  Skip: { op: "skip_field", fieldId: "team_members", reason: "..." }
1889
2019
 
1890
2020
  # General Instructions
@@ -1895,25 +2025,51 @@ turns:
1895
2025
  request:
1896
2026
  system: |-
1897
2027
  # Form Instructions
1898
- Carefully research answers to all questions in the form, using all available tools you have.
1899
2028
 
1900
- Guidelines:
1901
- 1. Focus on required fields first (severity: "required"), then address optional fields (severity: "recommended")
1902
- 2. You MUST address ALL issues shown to you - both required AND recommended (optional)
1903
- 3. NEVER fabricate or guess information - only use data you can verify
1904
- 4. If you cannot find verifiable information for a field, use skip_field to mark it as skipped with a reason
1905
- 5. For string fields: use appropriate text from verified sources
1906
- 6. For number fields: use appropriate numeric values from verified sources
1907
- 7. For single_select: choose one valid option ID
1908
- 8. For multi_select: choose one or more valid option IDs
1909
- 9. For checkboxes: use the appropriate state for the checkbox mode:
1910
- - Mode "simple": done (checked) or todo (unchecked)
1911
- - Mode "multi": done, todo, or na (not applicable)
1912
- - Mode "explicit": yes or no (must explicitly answer)
2029
+ Research and fill the form fields using all available tools. Focus on accuracy over completeness.
2030
+
2031
+ ## Guidelines
2032
+ 1. Address required fields first (severity: "required"), then optional fields (severity: "recommended")
2033
+ 2. NEVER fabricate or guess information - only use data you can verify
2034
+ 3. If you cannot find verifiable information, use skip_field with a reason
2035
+
2036
+ ## Patch Format Examples
2037
+
2038
+ Use the fill_form tool with patches in these formats:
2039
+
2040
+ | Type | Example |
2041
+ |------|---------|
2042
+ | string | `{ op: "set_string", fieldId: "name", value: "Acme Corp" }` |
2043
+ | number | `{ op: "set_number", fieldId: "age", value: 32 }` |
2044
+ | string_list | `{ op: "set_string_list", fieldId: "tags", value: ["ai", "ml"] }` |
2045
+ | url | `{ op: "set_url", fieldId: "website", value: "https://example.com" }` |
2046
+ | url_list | `{ op: "set_url_list", fieldId: "sources", value: ["https://a.com", "https://b.com"] }` |
2047
+ | date | `{ op: "set_date", fieldId: "event_date", value: "2024-06-15" }` |
2048
+ | year | `{ op: "set_year", fieldId: "founded", value: 2024 }` |
2049
+ | single_select | `{ op: "set_single_select", fieldId: "priority", value: "high" }` |
2050
+ | multi_select | `{ op: "set_multi_select", fieldId: "categories", value: ["frontend", "backend"] }` |
2051
+ | checkboxes | `{ op: "set_checkboxes", fieldId: "tasks", value: { "task1": "done", "task2": "todo" } }` |
2052
+ | table | `{ op: "set_table", fieldId: "team", value: [{ "name": "Alice", "role": "Engineer" }] }` |
2053
+
2054
+ ## Important: checkboxes vs multi_select
2055
+
2056
+ These two types look similar but have DIFFERENT value formats:
2057
+
2058
+ - **multi_select** → array of option IDs: `["opt1", "opt2"]`
2059
+ - **checkboxes** → object mapping IDs to states: `{ "opt1": "done", "opt2": "todo" }`
2060
+
2061
+ **Checkbox states by mode:**
2062
+ - Mode "simple": `"done"` or `"todo"`
2063
+ - Mode "multi": `"done"`, `"todo"`, `"incomplete"`, `"active"`, or `"na"`
2064
+ - Mode "explicit": `"yes"` or `"no"` (if unknown, use abort_field)
2065
+
2066
+ **WRONG:** `{ op: "set_checkboxes", value: ["task1", "task2"] }`
2067
+ **RIGHT:** `{ op: "set_checkboxes", value: { "task1": "done", "task2": "done" } }`
1913
2068
 
1914
- CRITICAL: Accuracy is more important than completeness. Use skip_field when information cannot be verified.
2069
+ ## Skipping Fields
1915
2070
 
1916
- Always use the fill_form tool to submit your field values.
2071
+ If you cannot find verifiable information:
2072
+ `{ op: "skip_field", fieldId: "...", reason: "Could not find verified data" }`
1917
2073
 
1918
2074
 
1919
2075
  # Instructions for agent role
@@ -2175,7 +2331,7 @@ turns:
2175
2331
  Type: table
2176
2332
  Columns: name (required), role, start_date
2177
2333
  Rows: min: 0, max: 5
2178
- Set: { op: "set_table", fieldId: "team_members", rows: [{ "name": "...", "role": "...", "start_date": "..." }, ...] }
2334
+ Set: { op: "set_table", fieldId: "team_members", value: [{ "name": "...", "role": "...", "start_date": "..." }] }
2179
2335
  Skip: { op: "skip_field", fieldId: "team_members", reason: "..." }
2180
2336
 
2181
2337
  # General Instructions
@@ -2192,7 +2348,7 @@ turns:
2192
2348
  properties:
2193
2349
  patches:
2194
2350
  description: Array of patches to apply to the form
2195
- value:
2351
+ items:
2196
2352
  $ref: '#/$defs/patch'
2197
2353
  type: array
2198
2354
  required: