Documentation
that writes itself

Driftless reads your end-to-end tests and generates human-readable docs that stay in sync with your actual application behavior.

How It Works

01

Write Your Tests

Write Playwright, Cypress, or any e2e test as you normally would. No special syntax, no annotations, no extra configuration.

02

Push to GitHub

Driftless hooks into your CI pipeline. On every push, it reads your test files and understands what your application does.

03

Docs Update Automatically

Human-readable documentation is generated and committed. Staleness checks flag drift before it ships. Your docs never fall behind.

What It Generates

E2E TEST

End-to-End Test Coverage

Write tests as you normally would — Playwright, Cypress, or any e2e framework. Driftless reads the structure, assertions, and user flows without any modification to your test files.

workspace.spec.ts
PLAYWRIGHT
import { test, expect } from '@playwright/test';

test.describe('Workspace management', () => {
  test('creates a team workspace', async ({ page }) => {
    await page.goto('/dashboard');

    // Open creation dialog
    await page.getByRole('button', { name: 'New workspace' }).click();
    await expect(page.getByRole('dialog')).toBeVisible();

    // Fill workspace details
    await page.getByLabel('Workspace name').fill('Design System');
    await page.getByLabel('Visibility').selectOption('team');

    // Submit and verify redirect
    await page.getByRole('button', { name: 'Create' }).click();
    await expect(page).toHaveURL(/\/workspace\/design-system/);
    await expect(page.getByRole('heading', { level: 1 }))
      .toContainText('Design System');
  });
});
generates
TRAINING DOC

Human-Readable Documentation

Every describe block, assertion, label query, and user interaction is turned into a structured guide — complete with prerequisites, nested steps, inline code references, and a verification note.

creating-workspace.md
MARKDOWN

Creating a Team Workspace

Prerequisites

  • Must be signed in to your account
  • Account must have workspace creation permissions

Steps

  1. Navigate to /dashboard
  2. Click the New workspace button
    • A creation dialog will appear
  3. Enter a Workspace name (e.g., Design System)
  4. Set Visibility to team
  5. Click Create to confirm
Redirects to /workspace/design-system. Page heading confirms Design System.
auto-generated · synced from tests
268 TESTS PASSING · 12 SKILLS AVAILABLE · FRAMEWORK AGNOSTIC · OPERATIONAL · OPEN SOURCE · ZERO CONFIG · 268 TESTS PASSING · 12 SKILLS AVAILABLE · FRAMEWORK AGNOSTIC · OPERATIONAL · OPEN SOURCE · ZERO CONFIG ·
driftless

Documentation that writes itself.

v0.1.0

MIT © 2026 Dom Stepek

BUILT IN THE DRIFTLESS REGION