ripplo 0.0.11 → 0.1.0

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 CHANGED
@@ -4,7 +4,15 @@ CLI for [Ripplo](https://ripplo.ai) — AI-powered end-to-end testing.
4
4
 
5
5
  ## Quick Start
6
6
 
7
- Run this in your project directory:
7
+ ### 1. Install the CLI
8
+
9
+ ```sh
10
+ npm install -g ripplo
11
+ ```
12
+
13
+ Or use `npx ripplo` directly.
14
+
15
+ ### 2. Authenticate and set up
8
16
 
9
17
  ```sh
10
18
  npx ripplo
@@ -12,30 +20,91 @@ npx ripplo
12
20
 
13
21
  This will:
14
22
 
15
- - Authenticate and connect your project
16
- - Auto-install the MCP server for your coding agent
17
- - Scaffold a `.ripplo/` directory for your test graph
18
- - Start dev mode — build locally, deploy to cloud when ready
23
+ - Authenticate via device code flow
24
+ - Let you select a project
25
+ - Scaffold a `.ripplo/` directory with starter files
26
+ - Start the dev dashboard
27
+
28
+ ### 3. Install the Claude Code plugin
29
+
30
+ In Claude Code, run:
31
+
32
+ ```
33
+ /plugin marketplace add ripplo/claude-plugin
34
+ /plugin install ripplo
35
+ ```
36
+
37
+ The plugin hooks into your agent's workflow to create a tight validation loop — linting workflow specs on every edit, and automatically validating and running all tests before each session ends. Your agent writes deterministic, parallelizable tests that verify your app works end-to-end.
38
+
39
+ **Skills:**
40
+
41
+ | Skill | Description |
42
+ | ---------------------- | ----------------------------------------------------- |
43
+ | `/ripplo:explore` | Crawl your codebase and generate workflow specs |
44
+ | `/ripplo:create` | Create a new workflow spec |
45
+ | `/ripplo:run` | Run workflows in parallel |
46
+ | `/ripplo:debug` | Debug failures using DOM snapshots and network traces |
47
+ | `/ripplo:flake-detect` | Run N parallel executions to detect flaky tests |
19
48
 
20
- Your agent will handle the rest — no manual test writing required.
49
+ **Hooks:**
21
50
 
22
- Then paste `/mcp` into Claude Code (or your coding agent) to activate the Ripplo MCP.
51
+ | Hook | What it does |
52
+ | ----------- | --------------------------------------------------------------------------- |
53
+ | Post-edit | Lints workflow specs on every file change — your agent fixes issues in-line |
54
+ | Session end | Validates all workflows, flags unimplemented specs, and runs the full suite |
55
+
56
+ ### 4. Add `@ripplo/testing` to your project
57
+
58
+ ```sh
59
+ npm install @ripplo/testing
60
+ ```
61
+
62
+ This is the DSL your `.ripplo/` files use to define workflows and preconditions.
23
63
 
24
64
  ## How It Works
25
65
 
26
- **Finding your key user flows** — Your agent reads through your app to find the important things users do signing up, logging in, creating content. It maps these into a test graph so every flow can be tested independently.
66
+ **Define tests as code** — Tests are TypeScript files using a typed DSL. Your agent writes them, or you write them by hand. Each test defines its preconditions, starting URL, and interaction steps.
27
67
 
28
- **Every test gets a clean slate** — Each test defines its own preconditions like a fresh user, sample data, and the right permissions. No shared data or ordering dependencies. Scale to thousands of tests without flakes.
68
+ **Every test gets a clean slate** — Each test defines its own preconditions (fresh user, sample data, permissions). No shared state or ordering dependencies.
29
69
 
30
- **Dev mode to cloud** — Your agent builds and runs tests locally as you develop. When you merge, workflows sync from your repo and run in the cloud against your deployed environment.
70
+ **Dev mode to cloud** — The dashboard runs tests locally as you develop. When you merge, tests sync and run in the cloud against your deployed environment.
31
71
 
32
- **Secure by default** — Every request to your app is cryptographically signed so you know it's from Ripplo. Test endpoints are gated behind an environment variable — they're never exposed in production.
72
+ **Secure by default** — Every precondition request is cryptographically signed. Test endpoints are gated behind a webhook secret.
33
73
 
34
74
  ## Commands
35
75
 
36
- | Command | Description |
37
- | ---------------- | ---------------------------------------------------- |
38
- | `ripplo` | Launch the interactive dashboard |
39
- | `generate-types` | Generate Zod schemas + TS types for precondition API |
76
+ | Command | Description |
77
+ | ---------------------------- | -------------------------------------- |
78
+ | `ripplo` | Launch the interactive dashboard |
79
+ | `ripplo run [slugs..]` | Run tests in parallel |
80
+ | `ripplo lint [slugs..]` | Compile and lint workflows |
81
+ | `ripplo list` | List all tests with status |
82
+ | `ripplo doctor` | Check project health |
83
+ | `ripplo flake-detect <slug>` | Run a test N times to detect flakiness |
84
+ | `ripplo sync` | Sync tests to the dev session |
85
+
86
+ ## Project Structure
87
+
88
+ After setup, your project will have:
89
+
90
+ ```
91
+ .ripplo/
92
+ ├── ripplo.ts # Config: createRipplo({ projectId, appUrl, ... })
93
+ ├── index.ts # Entry point
94
+ ├── preconditions.ts # Test data setup/teardown
95
+ └── workflows/ # One file per user flow
96
+ └── example.ts # Starter workflow
97
+ ```
98
+
99
+ Configuration lives in `ripplo.ts` via `createRipplo()`:
100
+
101
+ ```ts
102
+ const ripplo = createRipplo({
103
+ appUrl: "http://localhost:3000",
104
+ preconditionsUrl: "http://localhost:3000/ripplo/preconditions",
105
+ projectId: "your-project-id",
106
+ webhookSecret: process.env["RIPPLO_WEBHOOK_SECRET"] ?? "",
107
+ });
108
+ ```
40
109
 
41
110
  Learn more at [ripplo.ai](https://ripplo.ai).