ripplo 0.0.12 → 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 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,52 +20,88 @@ 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
19
27
 
20
- Your agent will handle the rest no manual test writing required.
28
+ ### 3. Install the Claude Code plugin
21
29
 
22
- Then paste `/mcp` into Claude Code (or your coding agent) to activate the Ripplo MCP.
30
+ In Claude Code, run:
23
31
 
24
- ## How It Works
32
+ ```
33
+ /plugin marketplace add ripplo/claude-plugin
34
+ /plugin install ripplo
35
+ ```
25
36
 
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.
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.
27
38
 
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.
39
+ **Skills:**
29
40
 
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.
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 |
31
48
 
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.
49
+ **Hooks:**
33
50
 
34
- ## Commands
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 |
35
55
 
36
- | Command | Description |
37
- | ----------------------- | ---------------------------------------------------- |
38
- | `ripplo` | Launch the interactive dashboard |
39
- | `ripplo run` | Run workflows from the command line |
40
- | `ripplo generate-types` | Generate Zod schemas + TS types for precondition API |
56
+ ### 4. Add `@ripplo/testing` to your project
41
57
 
42
- ### `ripplo run`
58
+ ```sh
59
+ npm install @ripplo/testing
60
+ ```
43
61
 
44
- Run one or more workflows in parallel from the command line. Requires dev mode (`ripplo`) to be running.
62
+ This is the DSL your `.ripplo/` files use to define workflows and preconditions.
45
63
 
46
- ```sh
47
- # Run all workflows in parallel
48
- npx ripplo run
64
+ ## How It Works
49
65
 
50
- # Run a single workflow
51
- npx ripplo run login-flow
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.
52
67
 
53
- # Run multiple workflows in parallel
54
- npx ripplo run login-flow create-project checkout
55
- ```
68
+ **Every test gets a clean slate** — Each test defines its own preconditions (fresh user, sample data, permissions). No shared state or ordering dependencies.
69
+
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.
71
+
72
+ **Secure by default** — Every precondition request is cryptographically signed. Test endpoints are gated behind a webhook secret.
73
+
74
+ ## Commands
56
75
 
57
- With no arguments, it discovers and runs every workflow in `.ripplo/workflows/`.
76
+ | Command | Description |
77
+ | -------------------------- | -------------------------------------- |
78
+ | `ripplo` | Launch the interactive dashboard |
79
+ | `ripplo run [ids..]` | Run tests in parallel |
80
+ | `ripplo lint [ids..]` | Compile and lint workflows |
81
+ | `ripplo doctor` | Check project health |
82
+ | `ripplo flake-detect <id>` | Run a test N times to detect flakiness |
58
83
 
59
- Workflow slugs are the filenames in `.ripplo/workflows/` without the `.json` extension. Results include run URLs and debug artifact paths.
84
+ ## Project Structure
60
85
 
61
- Your coding agent can also trigger runs via the MCP server's `run` tool.
86
+ After setup, your project will have:
87
+
88
+ ```
89
+ .ripplo/
90
+ ├── ripplo.ts # Config: createRipplo({ projectId, appUrl, ... })
91
+ ├── index.ts # Entry point — explicitly imports every precondition and test file
92
+ ├── preconditions/ # Test data setup/teardown (add `import "./preconditions/<file>.js";` to index.ts)
93
+ └── tests/ # Test specs (add `import "./tests/<id>.js";` to index.ts)
94
+ ```
95
+
96
+ Configuration lives in `ripplo.ts` via `createRipplo()`:
97
+
98
+ ```ts
99
+ const ripplo = createRipplo({
100
+ appUrl: "http://localhost:3000",
101
+ preconditionsUrl: "http://localhost:3000/ripplo/preconditions",
102
+ projectId: "your-project-id",
103
+ webhookSecret: process.env["RIPPLO_WEBHOOK_SECRET"] ?? "",
104
+ });
105
+ ```
62
106
 
63
107
  Learn more at [ripplo.ai](https://ripplo.ai).