@zibby/skills 0.1.11 → 0.1.13
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/dist/index.js +5 -5
- package/dist/package.json +3 -3
- package/dist/skill-installer.js +5 -5
- package/docs/cli-reference.md +120 -256
- package/docs/cloning-repositories.md +2 -2
- package/docs/cloud/bundles.md +92 -0
- package/docs/cloud/dedicated-egress.md +140 -0
- package/docs/cloud/env-vars.md +144 -0
- package/docs/cloud/limits.md +81 -0
- package/docs/cloud/logs.md +104 -0
- package/docs/cloud/triggering.md +114 -0
- package/docs/concepts/agents.md +112 -0
- package/docs/concepts/graph.md +83 -0
- package/docs/concepts/sessions.md +70 -0
- package/docs/concepts/skills.md +84 -0
- package/docs/concepts/state.md +106 -0
- package/docs/get-started/deploy.md +75 -0
- package/docs/get-started/install.md +58 -0
- package/docs/get-started/run-locally.md +94 -0
- package/docs/get-started/trigger-and-logs.md +90 -0
- package/docs/get-started/your-first-workflow.md +66 -0
- package/docs/intro.md +37 -65
- package/docs/legacy/test-automation.md +110 -0
- package/docs/packages/agent-workflow.md +88 -0
- package/docs/packages/cli.md +42 -207
- package/docs/packages/core.md +40 -224
- package/docs/recipes/index.md +62 -0
- package/docs/recipes/test.md +154 -0
- package/package.json +3 -3
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
title: Browser test recipe (zibby test)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `zibby test` — browser test recipe
|
|
7
|
+
|
|
8
|
+
The browser-test recipe takes a plain-English spec, drives a real browser via a coding agent (Cursor / Claude / Codex / Gemini), runs the assertions, and produces a Playwright script + verification video.
|
|
9
|
+
|
|
10
|
+
It's a worked example of what the Zibby platform does — every step is a regular workflow node with Zod-validated handoff. You can read the source, fork it, or build your own variation.
|
|
11
|
+
|
|
12
|
+
## Quick start
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Inline spec
|
|
16
|
+
zibby test "Go to https://example.com and verify the title is 'Example Domain'"
|
|
17
|
+
|
|
18
|
+
# Spec file
|
|
19
|
+
zibby test test-specs/login.txt
|
|
20
|
+
|
|
21
|
+
# With a specific agent
|
|
22
|
+
zibby test test-specs/checkout.txt --agent claude
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## What it produces
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
.zibby/output/sessions/<session-id>/
|
|
29
|
+
├── execute_live/
|
|
30
|
+
│ ├── result.json ← Zod-validated assertions + agent reasoning
|
|
31
|
+
│ └── browser-trace/ ← Playwright trace files
|
|
32
|
+
├── generate_script/
|
|
33
|
+
│ ├── result.json ← parsed script + metadata
|
|
34
|
+
│ └── generated.spec.js ← reusable Playwright test
|
|
35
|
+
└── video/
|
|
36
|
+
└── recording.webm ← visual verification
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Open the session in [Zibby Studio](https://zibby.app/studio) to scrub through the run, swap the prompt, re-execute any node.
|
|
40
|
+
|
|
41
|
+
## The graph (this is just a Zibby workflow)
|
|
42
|
+
|
|
43
|
+
Under the hood, `zibby test` is a 3-node graph:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
┌──────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
|
47
|
+
│ preflight │ → │ execute_live │ → │ generate_script │
|
|
48
|
+
│ │ │ │ │ │
|
|
49
|
+
│ extract │ │ agent drives │ │ produce │
|
|
50
|
+
│ assertions │ │ browser via MCP, │ │ Playwright │
|
|
51
|
+
│ from spec │ │ records video │ │ test file │
|
|
52
|
+
└──────────────┘ └──────────────────┘ └─────────────────┘
|
|
53
|
+
│ │ │
|
|
54
|
+
Zod out Zod out Zod out
|
|
55
|
+
(Assertions) (BrowserResult) (PlaywrightScript)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Each node is a real `WorkflowGraph` node. The agent in `execute_live` does its own tool loop (browser navigation, click, assertion checking) — Zibby just defines the contract.
|
|
59
|
+
|
|
60
|
+
## Customizing
|
|
61
|
+
|
|
62
|
+
**Use a different agent per run:**
|
|
63
|
+
```bash
|
|
64
|
+
zibby test test-specs/checkout.txt --agent claude # Claude Code
|
|
65
|
+
zibby test test-specs/checkout.txt --agent cursor # Cursor (default)
|
|
66
|
+
zibby test test-specs/checkout.txt --agent codex # OpenAI Codex
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Run only one node** (e.g. just regenerate the script from an existing run):
|
|
70
|
+
```bash
|
|
71
|
+
zibby test --session 1768974629717 --node generate_script
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Headless vs headed:**
|
|
75
|
+
```bash
|
|
76
|
+
zibby test test-specs/login.txt # headed (default — see the browser)
|
|
77
|
+
zibby test test-specs/login.txt --headless # headless mode (for CI)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Forking the recipe
|
|
81
|
+
|
|
82
|
+
If the built-in recipe doesn't fit your case, scaffold a custom workflow and copy the structure:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
zibby workflow new my-test-pipeline
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Then in `graph.mjs`, define your own nodes:
|
|
89
|
+
|
|
90
|
+
```js
|
|
91
|
+
import { WorkflowGraph, z } from '@zibby/agent-workflow';
|
|
92
|
+
|
|
93
|
+
const AssertionsSchema = z.object({
|
|
94
|
+
assertions: z.array(z.string()),
|
|
95
|
+
baseUrl: z.string().url(),
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const BrowserResultSchema = z.object({
|
|
99
|
+
passed: z.boolean(),
|
|
100
|
+
details: z.array(z.object({ assertion: z.string(), passed: z.boolean() })),
|
|
101
|
+
videoPath: z.string().optional(),
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
const graph = new WorkflowGraph();
|
|
105
|
+
|
|
106
|
+
graph.addNode('preflight', {
|
|
107
|
+
agent: 'claude',
|
|
108
|
+
prompt: ({ spec }) => `Extract assertions and base URL from: ${spec}`,
|
|
109
|
+
outputSchema: AssertionsSchema,
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
graph.addNode('execute_live', {
|
|
113
|
+
agent: 'cursor',
|
|
114
|
+
skills: ['browser'],
|
|
115
|
+
prompt: ({ preflight }) => `Navigate to ${preflight.baseUrl} and verify: ${preflight.assertions.join('; ')}`,
|
|
116
|
+
outputSchema: BrowserResultSchema,
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
graph.addEdge('preflight', 'execute_live');
|
|
120
|
+
graph.setEntryPoint('preflight');
|
|
121
|
+
|
|
122
|
+
export default graph;
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
That's the platform. The recipe is just a starter.
|
|
126
|
+
|
|
127
|
+
## CI/CD
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
- name: Run Zibby test
|
|
131
|
+
env:
|
|
132
|
+
ZIBBY_USER_TOKEN: ${{ secrets.ZIBBY_USER_TOKEN }}
|
|
133
|
+
run: |
|
|
134
|
+
npx @zibby/cli test test-specs/checkout.txt --headless
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
For workflows triggered remotely (rather than per-CI-run), use [`workflow trigger`](../cloud/triggering) on a deployed graph.
|
|
138
|
+
|
|
139
|
+
## Why this is different from Playwright codegen / a basic LLM script
|
|
140
|
+
|
|
141
|
+
| | Playwright codegen | LLM-only script | Zibby test recipe |
|
|
142
|
+
|---|---|---|---|
|
|
143
|
+
| Plain-English input | ❌ | ✅ | ✅ |
|
|
144
|
+
| Real browser execution | ✅ | ❌ (just generates code) | ✅ |
|
|
145
|
+
| Coding-agent driven | ❌ | partial | ✅ Cursor / Claude / Codex |
|
|
146
|
+
| Multi-step verification | ❌ | ❌ | ✅ Zod-validated nodes |
|
|
147
|
+
| Replayable + debuggable | ❌ | ❌ | ✅ Studio |
|
|
148
|
+
| Vendor-neutral | N/A | locked to one LLM | swap agent per run |
|
|
149
|
+
|
|
150
|
+
## See also
|
|
151
|
+
|
|
152
|
+
- [Recipes overview](./index)
|
|
153
|
+
- [Concepts: graph](../concepts/graph) — the primitives this recipe uses
|
|
154
|
+
- [Cloud triggering](../cloud/triggering) — fire workflows from CI/CD
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zibby/skills",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Built-in skill definitions for Zibby test automation framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
],
|
|
29
29
|
"author": "Zibby",
|
|
30
30
|
"license": "MIT",
|
|
31
|
-
"homepage": "https://zibby.
|
|
31
|
+
"homepage": "https://zibby.dev",
|
|
32
32
|
"repository": {
|
|
33
33
|
"type": "git",
|
|
34
34
|
"url": "https://github.com/ZibbyHQ/zibby-agent"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"node": ">=18.0.0"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@zibby/agent-workflow": "^0.
|
|
49
|
+
"@zibby/agent-workflow": "^0.3.0"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"@zibby/core": ">=0.1.44"
|