markform 0.1.0 → 0.1.1
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.
- package/README.md +216 -44
- package/dist/ai-sdk.d.mts +1 -1
- package/dist/ai-sdk.mjs +1 -1
- package/dist/{apply-C0vjijlP.mjs → apply-BQdd-fdx.mjs} +381 -37
- package/dist/bin.mjs +3 -3
- package/dist/{cli-9fvFySww.mjs → cli-pjOiHgCW.mjs} +505 -92
- package/dist/cli.mjs +3 -3
- package/dist/{coreTypes-T7dAuewt.d.mts → coreTypes--6etkcwb.d.mts} +1088 -130
- package/dist/index.d.mts +90 -9
- package/dist/index.mjs +2 -2
- package/dist/{src-DBD3Dt4f.mjs → src-Cs4_9lWP.mjs} +460 -94
- package/examples/simple/simple-mock-filled.form.md +36 -0
- package/examples/simple/simple-skipped-filled.form.md +147 -0
- package/examples/simple/simple-with-skips.session.yaml +230 -0
- package/examples/simple/simple.form.md +22 -0
- package/examples/simple/simple.session.yaml +60 -28
- package/examples/startup-deep-research/startup-deep-research.form.md +404 -0
- package/examples/startup-research/startup-research-mock-filled.form.md +307 -0
- package/examples/startup-research/startup-research.form.md +211 -0
- package/package.json +4 -2
|
@@ -114,6 +114,32 @@ Answer yes or no for each confirmation. All must be explicitly answered.
|
|
|
114
114
|
|
|
115
115
|
{% /field-group %}
|
|
116
116
|
|
|
117
|
+
{% field-group id="url_fields" title="URL Fields" %}
|
|
118
|
+
|
|
119
|
+
{% url-field id="website" label="Website" role="user" required=true %}
|
|
120
|
+
```value
|
|
121
|
+
https://alice.dev
|
|
122
|
+
```
|
|
123
|
+
{% /url-field %}
|
|
124
|
+
|
|
125
|
+
{% instructions ref="website" %}
|
|
126
|
+
Enter your website URL (must be http or https).
|
|
127
|
+
{% /instructions %}
|
|
128
|
+
|
|
129
|
+
{% url-list id="references" label="References" role="user" minItems=1 maxItems=5 uniqueItems=true %}
|
|
130
|
+
```value
|
|
131
|
+
https://docs.example.com/guide
|
|
132
|
+
https://github.com/example/project
|
|
133
|
+
https://medium.com/article-about-forms
|
|
134
|
+
```
|
|
135
|
+
{% /url-list %}
|
|
136
|
+
|
|
137
|
+
{% instructions ref="references" %}
|
|
138
|
+
Add 1-5 unique reference URLs for sources or documentation.
|
|
139
|
+
{% /instructions %}
|
|
140
|
+
|
|
141
|
+
{% /field-group %}
|
|
142
|
+
|
|
117
143
|
{% field-group id="optional_fields" title="Optional Fields (Agent)" %}
|
|
118
144
|
|
|
119
145
|
{% string-field id="notes" label="Notes" role="agent" %}
|
|
@@ -128,6 +154,16 @@ Add any relevant notes or observations about this test form.
|
|
|
128
154
|
|
|
129
155
|
{% number-field id="optional_number" label="Optional Number" role="agent" %}{% /number-field %}
|
|
130
156
|
|
|
157
|
+
{% url-field id="related_url" label="Related URL" role="agent" %}
|
|
158
|
+
```value
|
|
159
|
+
https://markform.dev/docs
|
|
160
|
+
```
|
|
161
|
+
{% /url-field %}
|
|
162
|
+
|
|
163
|
+
{% instructions ref="related_url" %}
|
|
164
|
+
Optionally add a URL to related documentation or resources.
|
|
165
|
+
{% /instructions %}
|
|
166
|
+
|
|
131
167
|
{% /field-group %}
|
|
132
168
|
|
|
133
169
|
{% /form %}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
markform:
|
|
3
|
+
markform_version: "0.1.0"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
{% form id="simple_test" title="Simple Test Form" %}
|
|
7
|
+
|
|
8
|
+
{% description ref="simple_test" %}
|
|
9
|
+
A form demonstrating user and agent roles. User fills required fields,agent fills optional fields. Demonstrates all Markform v0.1 field types.
|
|
10
|
+
{% /description %}
|
|
11
|
+
|
|
12
|
+
{% field-group id="basic_fields" title="Basic Fields" %}
|
|
13
|
+
|
|
14
|
+
{% string-field id="name" label="Name" maxLength=50 minLength=2 required=true role="user" %}
|
|
15
|
+
```value
|
|
16
|
+
Test User
|
|
17
|
+
```
|
|
18
|
+
{% /string-field %}
|
|
19
|
+
|
|
20
|
+
{% instructions ref="name" %}
|
|
21
|
+
Enter your full name (2-50 characters).
|
|
22
|
+
{% /instructions %}
|
|
23
|
+
|
|
24
|
+
{% string-field id="email" label="Email" pattern="^[^@]+@[^@]+\\.[^@]+$" required=true role="user" %}
|
|
25
|
+
```value
|
|
26
|
+
test@example.com
|
|
27
|
+
```
|
|
28
|
+
{% /string-field %}
|
|
29
|
+
|
|
30
|
+
{% number-field id="age" integer=true label="Age" max=150 min=0 required=true role="user" %}
|
|
31
|
+
```value
|
|
32
|
+
25
|
|
33
|
+
```
|
|
34
|
+
{% /number-field %}
|
|
35
|
+
|
|
36
|
+
{% number-field id="score" label="Score" max=100 min=0 %}{% /number-field %}
|
|
37
|
+
|
|
38
|
+
{% instructions ref="score" %}
|
|
39
|
+
Assign a score between 0 and 100 based on form completeness.
|
|
40
|
+
{% /instructions %}
|
|
41
|
+
|
|
42
|
+
{% /field-group %}
|
|
43
|
+
|
|
44
|
+
{% field-group id="list_fields" title="List Fields" %}
|
|
45
|
+
|
|
46
|
+
{% string-list id="tags" itemMinLength=2 label="Tags" maxItems=5 minItems=1 required=true role="user" uniqueItems=true %}
|
|
47
|
+
```value
|
|
48
|
+
typescript
|
|
49
|
+
testing
|
|
50
|
+
```
|
|
51
|
+
{% /string-list %}
|
|
52
|
+
|
|
53
|
+
{% instructions ref="tags" %}
|
|
54
|
+
Add 1-5 unique tags (each at least 2 characters).
|
|
55
|
+
{% /instructions %}
|
|
56
|
+
|
|
57
|
+
{% /field-group %}
|
|
58
|
+
|
|
59
|
+
{% field-group id="selection_fields" title="Selection Fields" %}
|
|
60
|
+
|
|
61
|
+
{% single-select id="priority" label="Priority" required=true role="user" %}
|
|
62
|
+
- [ ] Low {% #low %}
|
|
63
|
+
- [ ] Medium {% #medium %}
|
|
64
|
+
- [x] High {% #high %}
|
|
65
|
+
{% /single-select %}
|
|
66
|
+
|
|
67
|
+
{% multi-select id="categories" label="Categories" maxSelections=3 minSelections=1 required=true role="user" %}
|
|
68
|
+
- [x] Frontend {% #frontend %}
|
|
69
|
+
- [x] Backend {% #backend %}
|
|
70
|
+
- [ ] Database {% #database %}
|
|
71
|
+
- [ ] DevOps {% #devops %}
|
|
72
|
+
{% /multi-select %}
|
|
73
|
+
|
|
74
|
+
{% /field-group %}
|
|
75
|
+
|
|
76
|
+
{% field-group id="checkbox_fields" title="Checkbox Fields" %}
|
|
77
|
+
|
|
78
|
+
{% checkboxes id="tasks_multi" label="Tasks (Multi Mode)" required=true role="user" %}
|
|
79
|
+
- [x] Research {% #research %}
|
|
80
|
+
- [x] Design {% #design %}
|
|
81
|
+
- [x] Implement {% #implement %}
|
|
82
|
+
- [-] Test {% #test %}
|
|
83
|
+
{% /checkboxes %}
|
|
84
|
+
|
|
85
|
+
{% instructions ref="tasks_multi" %}
|
|
86
|
+
Track task progress. All must reach done or na state to complete.
|
|
87
|
+
{% /instructions %}
|
|
88
|
+
|
|
89
|
+
{% checkboxes checkboxMode="simple" id="tasks_simple" label="Agreements (Simple Mode)" required=true role="user" %}
|
|
90
|
+
- [x] I have read the guidelines {% #read_guidelines %}
|
|
91
|
+
- [x] I agree to the terms {% #agree_terms %}
|
|
92
|
+
{% /checkboxes %}
|
|
93
|
+
|
|
94
|
+
{% checkboxes checkboxMode="explicit" id="confirmations" label="Confirmations (Explicit Mode)" required=true role="user" %}
|
|
95
|
+
- [y] Data has been backed up {% #backed_up %}
|
|
96
|
+
- [n] Stakeholders notified {% #notified %}
|
|
97
|
+
{% /checkboxes %}
|
|
98
|
+
|
|
99
|
+
{% instructions ref="confirmations" %}
|
|
100
|
+
Answer yes or no for each confirmation. All must be explicitly answered.
|
|
101
|
+
{% /instructions %}
|
|
102
|
+
|
|
103
|
+
{% /field-group %}
|
|
104
|
+
|
|
105
|
+
{% field-group id="url_fields" title="URL Fields" %}
|
|
106
|
+
|
|
107
|
+
{% url-field id="website" label="Website" required=true role="user" %}
|
|
108
|
+
```value
|
|
109
|
+
https://test.example.com
|
|
110
|
+
```
|
|
111
|
+
{% /url-field %}
|
|
112
|
+
|
|
113
|
+
{% instructions ref="website" %}
|
|
114
|
+
Enter your website URL (must be http or https).
|
|
115
|
+
{% /instructions %}
|
|
116
|
+
|
|
117
|
+
{% url-list id="references" label="References" maxItems=5 minItems=1 role="user" uniqueItems=true %}
|
|
118
|
+
```value
|
|
119
|
+
https://docs.example.com
|
|
120
|
+
```
|
|
121
|
+
{% /url-list %}
|
|
122
|
+
|
|
123
|
+
{% instructions ref="references" %}
|
|
124
|
+
Add 1-5 unique reference URLs for sources or documentation.
|
|
125
|
+
{% /instructions %}
|
|
126
|
+
|
|
127
|
+
{% /field-group %}
|
|
128
|
+
|
|
129
|
+
{% field-group id="optional_fields" title="Optional Fields (Agent)" %}
|
|
130
|
+
|
|
131
|
+
{% string-field id="notes" label="Notes" %}{% /string-field %}
|
|
132
|
+
|
|
133
|
+
{% instructions ref="notes" %}
|
|
134
|
+
Add any relevant notes or observations about this test form.
|
|
135
|
+
{% /instructions %}
|
|
136
|
+
|
|
137
|
+
{% number-field id="optional_number" label="Optional Number" %}{% /number-field %}
|
|
138
|
+
|
|
139
|
+
{% url-field id="related_url" label="Related URL" %}{% /url-field %}
|
|
140
|
+
|
|
141
|
+
{% instructions ref="related_url" %}
|
|
142
|
+
Optionally add a URL to related documentation or resources.
|
|
143
|
+
{% /instructions %}
|
|
144
|
+
|
|
145
|
+
{% /field-group %}
|
|
146
|
+
|
|
147
|
+
{% /form %}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
session_version: 0.1.0
|
|
2
|
+
mode: mock
|
|
3
|
+
form:
|
|
4
|
+
path: simple.form.md
|
|
5
|
+
mock:
|
|
6
|
+
completed_mock: simple-skipped-filled.form.md
|
|
7
|
+
harness:
|
|
8
|
+
max_turns: 50
|
|
9
|
+
max_patches_per_turn: 20
|
|
10
|
+
max_issues: 20
|
|
11
|
+
target_roles:
|
|
12
|
+
- user
|
|
13
|
+
- agent
|
|
14
|
+
turns:
|
|
15
|
+
# Turn 1: Fill basic user fields (name, email, age)
|
|
16
|
+
- turn: 1
|
|
17
|
+
inspect:
|
|
18
|
+
issues:
|
|
19
|
+
- ref: age
|
|
20
|
+
scope: field
|
|
21
|
+
reason: required_missing
|
|
22
|
+
message: Required field "Age" is empty
|
|
23
|
+
severity: required
|
|
24
|
+
priority: 1
|
|
25
|
+
- ref: email
|
|
26
|
+
scope: field
|
|
27
|
+
reason: required_missing
|
|
28
|
+
message: Required field "Email" is empty
|
|
29
|
+
severity: required
|
|
30
|
+
priority: 1
|
|
31
|
+
- ref: name
|
|
32
|
+
scope: field
|
|
33
|
+
reason: required_missing
|
|
34
|
+
message: Required field "Name" is empty
|
|
35
|
+
severity: required
|
|
36
|
+
priority: 1
|
|
37
|
+
- ref: tags
|
|
38
|
+
scope: field
|
|
39
|
+
reason: required_missing
|
|
40
|
+
message: Required field "Tags" is empty
|
|
41
|
+
severity: required
|
|
42
|
+
priority: 1
|
|
43
|
+
- ref: website
|
|
44
|
+
scope: field
|
|
45
|
+
reason: required_missing
|
|
46
|
+
message: Required field "Website" is empty
|
|
47
|
+
severity: required
|
|
48
|
+
priority: 1
|
|
49
|
+
- ref: categories
|
|
50
|
+
scope: field
|
|
51
|
+
reason: validation_error
|
|
52
|
+
message: Required field "Categories" has no selections
|
|
53
|
+
severity: required
|
|
54
|
+
priority: 2
|
|
55
|
+
- ref: confirmations
|
|
56
|
+
scope: field
|
|
57
|
+
reason: validation_error
|
|
58
|
+
message: All items in "Confirmations (Explicit Mode)" must be answered (2 unfilled)
|
|
59
|
+
severity: required
|
|
60
|
+
priority: 2
|
|
61
|
+
- ref: priority
|
|
62
|
+
scope: field
|
|
63
|
+
reason: validation_error
|
|
64
|
+
message: Required field "Priority" has no selection
|
|
65
|
+
severity: required
|
|
66
|
+
priority: 2
|
|
67
|
+
- ref: tasks_multi
|
|
68
|
+
scope: field
|
|
69
|
+
reason: validation_error
|
|
70
|
+
message: All items in "Tasks (Multi Mode)" must be completed
|
|
71
|
+
severity: required
|
|
72
|
+
priority: 2
|
|
73
|
+
- ref: tasks_simple
|
|
74
|
+
scope: field
|
|
75
|
+
reason: validation_error
|
|
76
|
+
message: All items in "Agreements (Simple Mode)" must be checked (2 unchecked)
|
|
77
|
+
severity: required
|
|
78
|
+
priority: 2
|
|
79
|
+
apply:
|
|
80
|
+
patches:
|
|
81
|
+
- op: set_string
|
|
82
|
+
field_id: name
|
|
83
|
+
value: Test User
|
|
84
|
+
- op: set_string
|
|
85
|
+
field_id: email
|
|
86
|
+
value: test@example.com
|
|
87
|
+
- op: set_number
|
|
88
|
+
field_id: age
|
|
89
|
+
value: 25
|
|
90
|
+
after:
|
|
91
|
+
required_issue_count: 7
|
|
92
|
+
markdown_sha256: be317980230ed614221e949a31c950d69e170470882a2e69228044b80392d422
|
|
93
|
+
answered_field_count: 3
|
|
94
|
+
skipped_field_count: 0
|
|
95
|
+
|
|
96
|
+
# Turn 2: Fill selection fields (tags, priority, categories, website, references)
|
|
97
|
+
- turn: 2
|
|
98
|
+
inspect:
|
|
99
|
+
issues:
|
|
100
|
+
- ref: tags
|
|
101
|
+
scope: field
|
|
102
|
+
reason: required_missing
|
|
103
|
+
message: Required field "Tags" is empty
|
|
104
|
+
severity: required
|
|
105
|
+
priority: 1
|
|
106
|
+
- ref: website
|
|
107
|
+
scope: field
|
|
108
|
+
reason: required_missing
|
|
109
|
+
message: Required field "Website" is empty
|
|
110
|
+
severity: required
|
|
111
|
+
priority: 1
|
|
112
|
+
- ref: categories
|
|
113
|
+
scope: field
|
|
114
|
+
reason: validation_error
|
|
115
|
+
message: Required field "Categories" has no selections
|
|
116
|
+
severity: required
|
|
117
|
+
priority: 2
|
|
118
|
+
- ref: confirmations
|
|
119
|
+
scope: field
|
|
120
|
+
reason: validation_error
|
|
121
|
+
message: All items in "Confirmations (Explicit Mode)" must be answered (2 unfilled)
|
|
122
|
+
severity: required
|
|
123
|
+
priority: 2
|
|
124
|
+
- ref: priority
|
|
125
|
+
scope: field
|
|
126
|
+
reason: validation_error
|
|
127
|
+
message: Required field "Priority" has no selection
|
|
128
|
+
severity: required
|
|
129
|
+
priority: 2
|
|
130
|
+
- ref: tasks_multi
|
|
131
|
+
scope: field
|
|
132
|
+
reason: validation_error
|
|
133
|
+
message: All items in "Tasks (Multi Mode)" must be completed
|
|
134
|
+
severity: required
|
|
135
|
+
priority: 2
|
|
136
|
+
- ref: tasks_simple
|
|
137
|
+
scope: field
|
|
138
|
+
reason: validation_error
|
|
139
|
+
message: All items in "Agreements (Simple Mode)" must be checked (2 unchecked)
|
|
140
|
+
severity: required
|
|
141
|
+
priority: 2
|
|
142
|
+
apply:
|
|
143
|
+
patches:
|
|
144
|
+
- op: set_string_list
|
|
145
|
+
field_id: tags
|
|
146
|
+
items:
|
|
147
|
+
- typescript
|
|
148
|
+
- testing
|
|
149
|
+
- op: set_single_select
|
|
150
|
+
field_id: priority
|
|
151
|
+
selected: high
|
|
152
|
+
- op: set_multi_select
|
|
153
|
+
field_id: categories
|
|
154
|
+
selected:
|
|
155
|
+
- frontend
|
|
156
|
+
- backend
|
|
157
|
+
- op: set_url
|
|
158
|
+
field_id: website
|
|
159
|
+
value: https://test.example.com
|
|
160
|
+
- op: set_url_list
|
|
161
|
+
field_id: references
|
|
162
|
+
items:
|
|
163
|
+
- https://docs.example.com
|
|
164
|
+
after:
|
|
165
|
+
required_issue_count: 3
|
|
166
|
+
markdown_sha256: f3b491aea22dc2da552c3cbb22aad61a13e90383e2a73e3758def7127c739614
|
|
167
|
+
answered_field_count: 8
|
|
168
|
+
skipped_field_count: 0
|
|
169
|
+
|
|
170
|
+
# Turn 3: Fill checkboxes + SKIP optional fields (demonstrates skip_field)
|
|
171
|
+
- turn: 3
|
|
172
|
+
inspect:
|
|
173
|
+
issues:
|
|
174
|
+
- ref: confirmations
|
|
175
|
+
scope: field
|
|
176
|
+
reason: validation_error
|
|
177
|
+
message: All items in "Confirmations (Explicit Mode)" must be answered (2 unfilled)
|
|
178
|
+
severity: required
|
|
179
|
+
priority: 2
|
|
180
|
+
- ref: tasks_multi
|
|
181
|
+
scope: field
|
|
182
|
+
reason: validation_error
|
|
183
|
+
message: All items in "Tasks (Multi Mode)" must be completed
|
|
184
|
+
severity: required
|
|
185
|
+
priority: 2
|
|
186
|
+
- ref: tasks_simple
|
|
187
|
+
scope: field
|
|
188
|
+
reason: validation_error
|
|
189
|
+
message: All items in "Agreements (Simple Mode)" must be checked (2 unchecked)
|
|
190
|
+
severity: required
|
|
191
|
+
priority: 2
|
|
192
|
+
apply:
|
|
193
|
+
patches:
|
|
194
|
+
- op: set_checkboxes
|
|
195
|
+
field_id: tasks_multi
|
|
196
|
+
values:
|
|
197
|
+
research: done
|
|
198
|
+
design: done
|
|
199
|
+
implement: done
|
|
200
|
+
test: na
|
|
201
|
+
- op: set_checkboxes
|
|
202
|
+
field_id: tasks_simple
|
|
203
|
+
values:
|
|
204
|
+
read_guidelines: done
|
|
205
|
+
agree_terms: done
|
|
206
|
+
- op: set_checkboxes
|
|
207
|
+
field_id: confirmations
|
|
208
|
+
values:
|
|
209
|
+
backed_up: yes
|
|
210
|
+
notified: no
|
|
211
|
+
# Skip optional fields explicitly
|
|
212
|
+
- op: skip_field
|
|
213
|
+
field_id: score
|
|
214
|
+
reason: Not needed for this test
|
|
215
|
+
- op: skip_field
|
|
216
|
+
field_id: notes
|
|
217
|
+
reason: No notes required
|
|
218
|
+
- op: skip_field
|
|
219
|
+
field_id: optional_number
|
|
220
|
+
- op: skip_field
|
|
221
|
+
field_id: related_url
|
|
222
|
+
reason: No related URL needed
|
|
223
|
+
after:
|
|
224
|
+
required_issue_count: 0
|
|
225
|
+
markdown_sha256: 474cfdab3f98dbd0852e104ccc7f9dc28115de52975df5104629a9cc5dec5c67
|
|
226
|
+
answered_field_count: 11
|
|
227
|
+
skipped_field_count: 4
|
|
228
|
+
final:
|
|
229
|
+
expect_complete: true
|
|
230
|
+
expected_completed_form: simple-skipped-filled.form.md
|
|
@@ -92,6 +92,22 @@ Answer yes or no for each confirmation. All must be explicitly answered.
|
|
|
92
92
|
|
|
93
93
|
{% /field-group %}
|
|
94
94
|
|
|
95
|
+
{% field-group id="url_fields" title="URL Fields" %}
|
|
96
|
+
|
|
97
|
+
{% url-field id="website" label="Website" role="user" required=true %}{% /url-field %}
|
|
98
|
+
|
|
99
|
+
{% instructions ref="website" %}
|
|
100
|
+
Enter your website URL (must be http or https).
|
|
101
|
+
{% /instructions %}
|
|
102
|
+
|
|
103
|
+
{% url-list id="references" label="References" role="user" minItems=1 maxItems=5 uniqueItems=true %}{% /url-list %}
|
|
104
|
+
|
|
105
|
+
{% instructions ref="references" %}
|
|
106
|
+
Add 1-5 unique reference URLs for sources or documentation.
|
|
107
|
+
{% /instructions %}
|
|
108
|
+
|
|
109
|
+
{% /field-group %}
|
|
110
|
+
|
|
95
111
|
{% field-group id="optional_fields" title="Optional Fields (Agent)" %}
|
|
96
112
|
|
|
97
113
|
{% string-field id="notes" label="Notes" role="agent" %}{% /string-field %}
|
|
@@ -102,6 +118,12 @@ Add any relevant notes or observations about this test form.
|
|
|
102
118
|
|
|
103
119
|
{% number-field id="optional_number" label="Optional Number" role="agent" %}{% /number-field %}
|
|
104
120
|
|
|
121
|
+
{% url-field id="related_url" label="Related URL" role="agent" %}{% /url-field %}
|
|
122
|
+
|
|
123
|
+
{% instructions ref="related_url" %}
|
|
124
|
+
Optionally add a URL to related documentation or resources.
|
|
125
|
+
{% /instructions %}
|
|
126
|
+
|
|
105
127
|
{% /field-group %}
|
|
106
128
|
|
|
107
129
|
{% /form %}
|
|
@@ -21,6 +21,30 @@ turns:
|
|
|
21
21
|
message: Required field "Age" is empty
|
|
22
22
|
severity: required
|
|
23
23
|
priority: 1
|
|
24
|
+
- ref: email
|
|
25
|
+
scope: field
|
|
26
|
+
reason: required_missing
|
|
27
|
+
message: Required field "Email" is empty
|
|
28
|
+
severity: required
|
|
29
|
+
priority: 1
|
|
30
|
+
- ref: name
|
|
31
|
+
scope: field
|
|
32
|
+
reason: required_missing
|
|
33
|
+
message: Required field "Name" is empty
|
|
34
|
+
severity: required
|
|
35
|
+
priority: 1
|
|
36
|
+
- ref: tags
|
|
37
|
+
scope: field
|
|
38
|
+
reason: required_missing
|
|
39
|
+
message: Required field "Tags" is empty
|
|
40
|
+
severity: required
|
|
41
|
+
priority: 1
|
|
42
|
+
- ref: website
|
|
43
|
+
scope: field
|
|
44
|
+
reason: required_missing
|
|
45
|
+
message: Required field "Website" is empty
|
|
46
|
+
severity: required
|
|
47
|
+
priority: 1
|
|
24
48
|
- ref: categories
|
|
25
49
|
scope: field
|
|
26
50
|
reason: validation_error
|
|
@@ -32,61 +56,55 @@ turns:
|
|
|
32
56
|
reason: validation_error
|
|
33
57
|
message: All items in "Confirmations (Explicit Mode)" must be answered (2 unfilled)
|
|
34
58
|
severity: required
|
|
35
|
-
priority:
|
|
36
|
-
- ref: email
|
|
37
|
-
scope: field
|
|
38
|
-
reason: required_missing
|
|
39
|
-
message: Required field "Email" is empty
|
|
40
|
-
severity: required
|
|
41
|
-
priority: 4
|
|
42
|
-
- ref: name
|
|
43
|
-
scope: field
|
|
44
|
-
reason: required_missing
|
|
45
|
-
message: Required field "Name" is empty
|
|
46
|
-
severity: required
|
|
47
|
-
priority: 5
|
|
59
|
+
priority: 2
|
|
48
60
|
- ref: priority
|
|
49
61
|
scope: field
|
|
50
62
|
reason: validation_error
|
|
51
63
|
message: Required field "Priority" has no selection
|
|
52
64
|
severity: required
|
|
53
|
-
priority:
|
|
54
|
-
- ref: tags
|
|
55
|
-
scope: field
|
|
56
|
-
reason: required_missing
|
|
57
|
-
message: Required field "Tags" is empty
|
|
58
|
-
severity: required
|
|
59
|
-
priority: 7
|
|
65
|
+
priority: 2
|
|
60
66
|
- ref: tasks_multi
|
|
61
67
|
scope: field
|
|
62
68
|
reason: validation_error
|
|
63
69
|
message: All items in "Tasks (Multi Mode)" must be completed
|
|
64
70
|
severity: required
|
|
65
|
-
priority:
|
|
71
|
+
priority: 2
|
|
66
72
|
- ref: tasks_simple
|
|
67
73
|
scope: field
|
|
68
74
|
reason: validation_error
|
|
69
75
|
message: All items in "Agreements (Simple Mode)" must be checked (2 unchecked)
|
|
70
76
|
severity: required
|
|
71
|
-
priority:
|
|
77
|
+
priority: 2
|
|
72
78
|
- ref: notes
|
|
73
79
|
scope: field
|
|
74
80
|
reason: optional_empty
|
|
75
81
|
message: Optional field has no value
|
|
76
82
|
severity: recommended
|
|
77
|
-
priority:
|
|
83
|
+
priority: 3
|
|
78
84
|
- ref: optional_number
|
|
79
85
|
scope: field
|
|
80
86
|
reason: optional_empty
|
|
81
87
|
message: Optional field has no value
|
|
82
88
|
severity: recommended
|
|
83
|
-
priority:
|
|
89
|
+
priority: 3
|
|
90
|
+
- ref: references
|
|
91
|
+
scope: field
|
|
92
|
+
reason: optional_empty
|
|
93
|
+
message: Optional field has no value
|
|
94
|
+
severity: recommended
|
|
95
|
+
priority: 3
|
|
96
|
+
- ref: related_url
|
|
97
|
+
scope: field
|
|
98
|
+
reason: optional_empty
|
|
99
|
+
message: Optional field has no value
|
|
100
|
+
severity: recommended
|
|
101
|
+
priority: 3
|
|
84
102
|
- ref: score
|
|
85
103
|
scope: field
|
|
86
104
|
reason: optional_empty
|
|
87
105
|
message: Optional field has no value
|
|
88
106
|
severity: recommended
|
|
89
|
-
priority:
|
|
107
|
+
priority: 3
|
|
90
108
|
apply:
|
|
91
109
|
patches:
|
|
92
110
|
- op: set_number
|
|
@@ -129,18 +147,32 @@ turns:
|
|
|
129
147
|
values:
|
|
130
148
|
read_guidelines: done
|
|
131
149
|
agree_terms: done
|
|
150
|
+
- op: set_url
|
|
151
|
+
field_id: website
|
|
152
|
+
value: https://alice.dev
|
|
153
|
+
- op: set_url_list
|
|
154
|
+
field_id: references
|
|
155
|
+
items:
|
|
156
|
+
- https://docs.example.com/guide
|
|
157
|
+
- https://github.com/example/project
|
|
158
|
+
- https://medium.com/article-about-forms
|
|
132
159
|
- op: set_string
|
|
133
160
|
field_id: notes
|
|
134
161
|
value: This is a test note.
|
|
135
|
-
- op:
|
|
162
|
+
- op: skip_field
|
|
136
163
|
field_id: optional_number
|
|
137
|
-
|
|
164
|
+
reason: Optional field not needed for this test
|
|
138
165
|
- op: set_number
|
|
139
166
|
field_id: score
|
|
140
167
|
value: 87.5
|
|
168
|
+
- op: set_url
|
|
169
|
+
field_id: related_url
|
|
170
|
+
value: https://markform.dev/docs
|
|
141
171
|
after:
|
|
142
172
|
required_issue_count: 0
|
|
143
|
-
markdown_sha256:
|
|
173
|
+
markdown_sha256: f2eaf91bd0cefccfca4ae116683626ab9735e00274095373174045527344a8e6
|
|
174
|
+
answered_field_count: 14
|
|
175
|
+
skipped_field_count: 1
|
|
144
176
|
final:
|
|
145
177
|
expect_complete: true
|
|
146
178
|
expected_completed_form: simple-mock-filled.form.md
|