jourilo 0.1.0 → 1.0.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 +51 -35
- package/package.json +1 -1
- package/plugin/.claude-plugin/icon.png +0 -0
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/dist/jourilo.mjs +2359 -598
- package/plugin/skills/jourilo/SKILL.md +2 -2
- package/plugin/skills/jourilo/references/cli.md +38 -12
- package/plugin/skills/optimize/SKILL.md +5 -2
|
@@ -73,11 +73,11 @@ Tell the user which stage you are in. If they asked for one thing (e.g. "just ac
|
|
|
73
73
|
6. **Prioritize** — Group by root cause, not by symptom. Order: blocked journeys and critical/serious defects on key
|
|
74
74
|
journeys → serious accessibility defects → performance on key pages → conversion hypotheses.
|
|
75
75
|
7. **Fix (repository mode, with permission)** — `jourilo optimize <run> --repo <path>` previews deterministic fixes
|
|
76
|
-
as diffs; apply with `--apply` after the user agrees (
|
|
76
|
+
as diffs; apply with `--apply` after the user agrees (one reversible change; its id is printed). For other defects, use each
|
|
77
77
|
finding's `sources` candidates, read the code, make the minimal edit yourself, and explain it with a diff.
|
|
78
78
|
Run the project's own lint/tests after editing.
|
|
79
79
|
8. **Verify** — `jourilo verify <baseline-run>`; rerun journeys. Report fixed / new / persisting with evidence. If
|
|
80
|
-
something regressed, fix it or `jourilo rollback <
|
|
80
|
+
something regressed, fix it or `jourilo rollback <id> --yes` (with permission; it never overwrites later edits).
|
|
81
81
|
9. **Report** — Give the report path (`.jourilo/runs/<id>/report.html`), a short prioritized summary, the
|
|
82
82
|
limitations of the run, and next steps. Offer `jourilo experiment plan --finding <id>` for hypotheses.
|
|
83
83
|
|
|
@@ -45,8 +45,11 @@ Options:
|
|
|
45
45
|
--brand SLUG Markilo brand to check design consistency against (default: master brand)
|
|
46
46
|
--ignore-robots Ignore robots.txt (only for sites you own or are authorized to test)
|
|
47
47
|
--allow-private Allow private-network hosts (10.x, 192.168.x, ...)
|
|
48
|
-
--no-forms
|
|
49
|
-
|
|
48
|
+
--no-forms Skip the form validation probe
|
|
49
|
+
(by default, on local hosts, an empty submission is simulated: nothing that sends data
|
|
50
|
+
leaves the browser, so no database is written; server-side feedback is reported as untested)
|
|
51
|
+
--allow-submit Really send empty submissions to test server-side validation, on local or other hosts
|
|
52
|
+
(disposable/test environments you are authorized to use only; never to delete/payment URLs)
|
|
50
53
|
--sarif Also write report.sarif for code scanning
|
|
51
54
|
--fail-on SEVERITY Exit 1 if a defect at or above this severity exists (CI gate)
|
|
52
55
|
```
|
|
@@ -76,8 +79,11 @@ Options:
|
|
|
76
79
|
--brand SLUG Markilo brand to check design consistency against (default: master brand)
|
|
77
80
|
--ignore-robots Ignore robots.txt (only for sites you own or are authorized to test)
|
|
78
81
|
--allow-private Allow private-network hosts (10.x, 192.168.x, ...)
|
|
79
|
-
--no-forms
|
|
80
|
-
|
|
82
|
+
--no-forms Skip the form validation probe
|
|
83
|
+
(by default, on local hosts, an empty submission is simulated: nothing that sends data
|
|
84
|
+
leaves the browser, so no database is written; server-side feedback is reported as untested)
|
|
85
|
+
--allow-submit Really send empty submissions to test server-side validation, on local or other hosts
|
|
86
|
+
(disposable/test environments you are authorized to use only; never to delete/payment URLs)
|
|
81
87
|
--sarif Also write report.sarif for code scanning
|
|
82
88
|
--fail-on SEVERITY Exit 1 if a defect at or above this severity exists (CI gate)
|
|
83
89
|
```
|
|
@@ -107,8 +113,11 @@ Options:
|
|
|
107
113
|
--brand SLUG Markilo brand to check design consistency against (default: master brand)
|
|
108
114
|
--ignore-robots Ignore robots.txt (only for sites you own or are authorized to test)
|
|
109
115
|
--allow-private Allow private-network hosts (10.x, 192.168.x, ...)
|
|
110
|
-
--no-forms
|
|
111
|
-
|
|
116
|
+
--no-forms Skip the form validation probe
|
|
117
|
+
(by default, on local hosts, an empty submission is simulated: nothing that sends data
|
|
118
|
+
leaves the browser, so no database is written; server-side feedback is reported as untested)
|
|
119
|
+
--allow-submit Really send empty submissions to test server-side validation, on local or other hosts
|
|
120
|
+
(disposable/test environments you are authorized to use only; never to delete/payment URLs)
|
|
112
121
|
--sarif Also write report.sarif for code scanning
|
|
113
122
|
--fail-on SEVERITY Exit 1 if a defect at or above this severity exists (CI gate)
|
|
114
123
|
```
|
|
@@ -135,13 +144,18 @@ Run options:
|
|
|
135
144
|
--var key=value Test data for {{key}} placeholders (also JOURILO_VAR_KEY env vars)
|
|
136
145
|
--allow-submit Allow form submission on non-local hosts (authorized test environments only)
|
|
137
146
|
--allow-destructive Allow irreversible/payment actions — local hosts with sandbox data only
|
|
147
|
+
--allow-origin ORIGIN Let the page navigate to another origin you are authorized to test (e.g. a test IdP)
|
|
138
148
|
--trace Record a Playwright trace per journey (contains typed values; keep private)
|
|
139
149
|
--auth FILE Playwright storage state for signed-in journeys
|
|
140
150
|
--save-auth FILE After a passing sign-in journey (exactly one), save its session for --auth (test accounts only)
|
|
151
|
+
--repeat N Run each journey N times (max 10); mixed outcomes are reported as flaky
|
|
141
152
|
--fail-on-failure Exit 1 when a journey fails
|
|
142
153
|
|
|
143
154
|
Safety: payment, purchase, delete and cancel actions are never performed on non-local hosts; form submission
|
|
144
|
-
on non-local hosts needs --allow-submit.
|
|
155
|
+
on non-local hosts needs --allow-submit. The policy is checked twice: on the element about to be clicked or
|
|
156
|
+
pressed (its name, link target, form action and identifiers — icon-only buttons included), and on every request
|
|
157
|
+
the page then sends (form posts, DELETE, requests to delete/cancel/payment endpoints, navigation to other
|
|
158
|
+
origins). Blocked steps are reported, not skipped silently.
|
|
145
159
|
```
|
|
146
160
|
|
|
147
161
|
## Experiment
|
|
@@ -167,7 +181,7 @@ Jourilo never invents traffic, conversions or effects: every number comes from y
|
|
|
167
181
|
|
|
168
182
|
### `jourilo optimize`
|
|
169
183
|
|
|
170
|
-
Plan (and with --apply, make) minimal source fixes for located findings; shows diffs,
|
|
184
|
+
Plan (and with --apply, make) minimal source fixes for located findings; shows diffs, writes one reversible change.
|
|
171
185
|
|
|
172
186
|
```
|
|
173
187
|
jourilo optimize [run=latest] --repo <path> [--rule id ...] [--apply]
|
|
@@ -175,8 +189,11 @@ jourilo optimize [run=latest] --repo <path> [--rule id ...] [--apply]
|
|
|
175
189
|
|
|
176
190
|
```
|
|
177
191
|
Deterministic fixers (others are reported with source candidates for a person or agent to fix):
|
|
178
|
-
axe/html-has-lang, jourilo/missing-viewport-meta, jourilo/input-purpose, jourilo/focus-visible, jourilo/paste-blocked
|
|
179
|
-
|
|
192
|
+
axe/html-has-lang, jourilo/missing-viewport-meta, jourilo/input-purpose, jourilo/focus-visible, jourilo/paste-blocked,
|
|
193
|
+
jourilo/unsized-images, jourilo/placeholder-label
|
|
194
|
+
Without --apply nothing is written. With --apply, all files are written as one change: each file must be unchanged
|
|
195
|
+
since the plan, writes are atomic, an interrupted apply is undone, and `jourilo rollback <id>` restores the files
|
|
196
|
+
(git is not required).
|
|
180
197
|
Afterwards run `jourilo verify <run>` to repeat the audit and compare.
|
|
181
198
|
```
|
|
182
199
|
|
|
@@ -198,10 +215,19 @@ jourilo checkpoint [--repo .] [--note text] | checkpoint diff [id=latest]
|
|
|
198
215
|
|
|
199
216
|
### `jourilo rollback`
|
|
200
217
|
|
|
201
|
-
|
|
218
|
+
Undo an applied fix (or restore a checkpoint) without overwriting later edits; requires --yes. The rollback can itself be undone.
|
|
202
219
|
|
|
203
220
|
```
|
|
204
|
-
jourilo rollback <
|
|
221
|
+
jourilo rollback <id|latest> --yes [--repo .] [--file path ...] [--force]
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
```
|
|
225
|
+
For a change made by `optimize --apply` (or a previous rollback), a file is restored only while it still
|
|
226
|
+
holds exactly what Jourilo wrote. A file edited afterwards is reported as a conflict and left alone; --force restores
|
|
227
|
+
it anyway after saving the current bytes under .jourilo/checkpoints/<id>/conflicts/.
|
|
228
|
+
For a checkpoint made with `jourilo checkpoint`, every tracked file changed since then is restored (everything you
|
|
229
|
+
or an agent changed in the meantime); the current bytes are kept, and the printed id undoes the rollback.
|
|
230
|
+
Untracked files created after a checkpoint are listed, never deleted.
|
|
205
231
|
```
|
|
206
232
|
|
|
207
233
|
## Results
|
|
@@ -15,10 +15,13 @@ Toolchain: `node "${CLAUDE_PLUGIN_ROOT}/dist/jourilo.mjs" <command> … --json`
|
|
|
15
15
|
1. Make sure there is a baseline run with `--repo` (`jourilo audit <url|dir> --repo <path>`).
|
|
16
16
|
2. `jourilo optimize <run> --repo <path> --json` previews deterministic fixes as diffs and lists the other defects
|
|
17
17
|
with `sources` (file, line, reason, confidence). Show the user the plan.
|
|
18
|
-
3. With the user's OK: `jourilo optimize <run> --repo <path> --apply` (
|
|
18
|
+
3. With the user's OK: `jourilo optimize <run> --repo <path> --apply` (writes all files as one change and prints its
|
|
19
|
+
id; `jourilo rollback <id>` undoes it, file by file, and never overwrites edits made afterwards).
|
|
20
|
+
Before editing files yourself, run `jourilo checkpoint --repo <path>` so your edits can be rolled back too. For the remaining
|
|
19
21
|
defects, read each candidate source, confirm it is really the cause, and make the smallest maintainable edit
|
|
20
22
|
(reuse the project's components and tokens; keep brand and behavior). Show diffs. Do not touch unrelated code.
|
|
21
23
|
4. Run the project's own lint/type-check/tests.
|
|
22
24
|
5. `jourilo verify <baseline-run> --json` and rerun affected journeys. Report fixed / new / persisting. If a fix
|
|
23
|
-
did not work or regressed something, say so and iterate, or offer `jourilo rollback <
|
|
25
|
+
did not work or regressed something, say so and iterate, or offer `jourilo rollback <id> --yes` (show the
|
|
26
|
+
user the preview without `--yes` first; it lists conflicts with edits made after the change).
|
|
24
27
|
6. Do not commit unless the user asks.
|