Agent skill

Feature Testing

by LanternOps in LanternOps/breeze

Post-implementation end-to-end feature verification. An agent skill from LanternOps/breeze.

AGPL-3.0Auto-check: notesTesting & QA

Install Feature Testing

skills CLI
$ npx skills add LanternOps/breeze --skill feature-testing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LanternOps/breeze feature-testing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/feature-testing .claude/skills/feature-testing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
feature-testing
GitHub stars
130
Token cost
~3k tokens
SKILL.md length
951 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Post-implementation end-to-end feature verification. An agent skill from LanternOps/breeze.

  • Works in 8 steps: Classify Feature → Environment Check → Build & Deploy (Agent Only) → …
  • Tasks that involve Browser testing
  • SKILL.md covers Overview, Phase 1: Classify Feature, Phase 2: Environment Check and Phase 3: Build & Deploy (Agent…, plus 5 more sections
  • Calls make, curl and python3; needs E2E_ADMIN_PASSWORD and BREEZE_API_KEY

What it does

Feature Testing is an agent skill from LanternOps/breeze. Post-implementation end-to-end feature verification. Use after implementing a feature to verify it works across UI, API, and agent layers using Playwright MCP tools, make dev-push, diagnostic logs API, and structured test logging.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Browser testing, End-to-end testing and MCP servers. It works with Playwright and macOS. The repository describes itself as: The open-source IT platform that comes with the workers. RMM + PSA in one system, with a governed AI operator built in. The licence is AGPL-3.0.

When your agent uses it

  • Tasks that involve Browser testing
  • Tasks that involve End-to-end testing
  • Tasks that involve MCP servers

Example prompts

  • “/feature-testing”

Requirements

  • Python 3
  • Docker
  • A credential in BREEZE_API_KEY
  • A credential in AUTH_TOKEN

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Classify Feature
  2. Environment Check
  3. Build & Deploy (Agent Only)
  4. UI Verification (Playwright MCP)
  5. API Verification
  6. Agent Log Verification (Agent Only)
  7. Record Results
  8. Tear Down

What it can do on your machine

Read from SKILL.md and the folder at commit 1f72bb7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • make
    • curl
    • python3
    • docker
    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use curl, docker and pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • E2E_ADMIN_PASSWORD
    • BREEZE_API_KEY
    • AUTH_TOKEN
    • REDIS_PASSWORD

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Feature Testing loads about 3k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 951 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:14
    code credentials. Always read from root `.env` using the `E2E_*` variables (`E2E_BASE_URL`, `E2E_API_URL`, `E2E_ADMIN_EM
  • NoteMentions a .env fileSKILL.md:29
    ### Required .env Variables
  • NoteMentions a .env fileSKILL.md:31
    Read the root `.env` file and confirm these are set:
  • NoteMentions a .env fileSKILL.md:38
    MIN_PASSWORD` | Login password | (set in .env) |
  • NoteMentions a .env fileSKILL.md:66
    redis-cli -a "$(grep '^REDIS_PASSWORD=' .env | cut -d= -f2)" --no-auth-warning EVAL "local k=redis.call('KEYS','login:*
  • NoteMentions a .env fileSKILL.md:80
    Reads defaults from `../.env.dev` (gitignored):
  • NoteMentions a .env fileSKILL.md:337
    & make dev-push                    # Use .env.dev defaults
  • NoteMentions a .env fileSKILL.md:345
    redis-cli -a "$(grep '^REDIS_PASSWORD=' .env | cut -d= -f2)" --no-auth-warning EVAL "local k=redis.call('KEYS','login:*

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from LanternOps/breeze at commit 1f72bb7, republished under its AGPL-3.0 licence (© LanternOps). 951 words, ~2,957 tokens.

Download SKILL.mdSave it as .claude/skills/feature-testing/SKILL.md (or your agent's skills folder).
name
feature-testing
description
Post-implementation end-to-end feature verification. Use after implementing a feature to verify it works across UI, API, and agent layers using Playwright MCP tools, make dev-push, diagnostic logs API, and structured test logging.

Feature Testing

Overview

Use this skill after implementing a feature to verify it actually works end-to-end. It guides you through phased verification across UI, API, and agent layers — using Playwright MCP for browser testing, make dev-push for agent deploys, the diagnostic logs API for agent verification, and a markdown log for tracking results.

When to invoke: After completing implementation of any feature, bugfix, or behavior change. Before claiming "done" or creating a PR.

Credentials: NEVER hardcode credentials. Always read from root .env using the E2E_* variables (E2E_BASE_URL, E2E_API_URL, E2E_ADMIN_EMAIL, E2E_ADMIN_PASSWORD, E2E_MACOS_DEVICE_ID, E2E_WINDOWS_DEVICE_ID). For agent deploys, use BREEZE_API_KEY and BREEZE_DEV_DEVICE from .env.dev. Source these files before running any commands that need auth.

Phase 1: Classify Feature

Determine which phases to run based on what was implemented:

Feature TypeExamplePhases
UI-onlyNew dashboard widget, form validation2, 4, 7
API-onlyNew endpoint, query change2, 5, 7
Agent-sideNew command handler, collector2, 3, 5, 6, 7
Full-stackNew feature spanning UI + API + agent2, 3, 4, 5, 6, 7

Phase 2: Environment Check

Required .env Variables

Read the root .env file and confirm these are set:

VariablePurposeExample
E2E_BASE_URLWeb app URLhttp://localhost:4321 (or the baseUrl from pnpm wt-stack up)
E2E_API_URLAPI URLhttp://localhost:3001
E2E_ADMIN_EMAILLogin emailadmin@breeze.local
E2E_ADMIN_PASSWORDLogin password(set in .env)
E2E_MACOS_DEVICE_IDmacOS test deviceUUID
E2E_WINDOWS_DEVICE_IDWindows test deviceUUID

Point these at a local or lab stack, never at a hosted production URL.

Docker Services

Check that required services are running:

bash
docker compose ps --format "table {{.Name}}\t{{.Status}}" | grep -E "api|web|postgres|redis"

All four services (api, web, postgres, redis) must show "Up".

Device Online Check (agent tests only)
bash
curl -sf "${E2E_API_URL}/api/v1/devices/${E2E_MACOS_DEVICE_ID}" \
  -H "X-API-Key: ${BREEZE_API_KEY}" | python3 -c "import sys,json; d=json.load(sys.stdin); print(f'{d[\"hostname\"]} — {d[\"status\"]}')"
Clear Rate Limits

Prevent login failures during testing:

bash
docker exec breeze-redis redis-cli -a "$(grep '^REDIS_PASSWORD=' .env | cut -d= -f2)" --no-auth-warning EVAL "local k=redis.call('KEYS','login:*'); for _,v in ipairs(k) do redis.call('DEL',v) end; return #k" 0

Phase 3: Build & Deploy (Agent Only)

Use make dev-push to build and deploy agent code to the test device. The Makefile target at agent/Makefile:116-144 handles: detect platform, cross-compile, upload binary, trigger restart.

Deploy
bash
cd agent
make dev-push

Reads defaults from ../.env.dev (gitignored):

  • BREEZE_DEV_DEVICE — target device UUID
  • BREEZE_API_KEY — API key (brz_...) or JWT
  • BREEZE_API_URL — API base URL

Override any default: make dev-push DEVICE=<id> AUTH_TOKEN=<key> API_URL=<url>

Verify Deploy Landed

Poll the device API to confirm the new version is running:

bash
curl -sf "${E2E_API_URL}/api/v1/devices/${DEVICE_ID}" \
  -H "X-API-Key: ${BREEZE_API_KEY}" | python3 -c "import sys,json; d=json.load(sys.stdin); print(f'version={d.get(\"agentVersion\",\"?\")} status={d[\"status\"]}')"

The version should show dev-<unix-timestamp>. Agent typically restarts within 5-10 seconds.

Phase 4: UI Verification (Playwright MCP)

Use Playwright MCP tools for browser-based verification. Load tools via ToolSearch first.

Login Pattern
1. browser_navigate → ${E2E_BASE_URL}/login
2. browser_snapshot → confirm login form rendered
3. browser_fill_form → email + password fields
4. browser_click → submit button
5. browser_wait_for → URL changes away from /login (timeout 10s)
6. browser_snapshot → confirm dashboard loaded
Navigation URLs
PageURL
Dashboard/
Devices/devices
Device Detail/devices/{id}
Alerts/alerts
Scripts/scripts
Automations/automations
Reports/reports
Settings/settings
Monitoring/monitoring
Discovery/network/discovery
CIS Benchmarks/compliance/cis
Policies/policies
Verification Steps
  1. Snapshot — browser_snapshot to get accessibility tree, confirm elements render
  2. Interact — browser_click, browser_fill_form, browser_select_option to exercise the feature
  3. Screenshot — browser_take_screenshot for visual confirmation if snapshot isn't enough
  4. Console check — browser_console_messages to catch JS errors
  5. Network check — browser_network_requests to verify API calls succeed (no 4xx/5xx)
Astro Hydration Note

Astro React islands hydrate after initial page load. After browser_navigate, wait for network idle before interacting with React components. If clicks don't register, the island hasn't hydrated yet — add a short wait or re-snapshot to confirm interactive elements are present.

Common Selectors

Use browser_snapshot output (accessibility tree) to find elements. Common patterns:

  • Buttons: look for button role with name text
  • Links: look for link role with name text
  • Forms: look for textbox role with name matching label
  • Tables: look for table, row, cell roles

Phase 5: API Verification

Authentication Methods
MethodHeaderWhen to use
API KeyX-API-Key: brz_...Automated testing, scripts
JWTAuthorization: Bearer <token>After login, browser-initiated

To get a JWT for API testing:

bash
curl -sf -X POST "${E2E_API_URL}/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d "{\"email\":\"${E2E_ADMIN_EMAIL}\",\"password\":\"${E2E_ADMIN_PASSWORD}\"}" \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['tokens']['accessToken'])"
Show full SKILL.md (377 more words)Show less
Common Endpoints
EndpointMethodPurpose
/api/v1/devicesGETList devices
/api/v1/devices/:idGETDevice detail
/api/v1/devices/:id/diagnostic-logsGETAgent logs
/api/v1/alertsGETList alerts
/api/v1/scriptsGETList scripts
/api/v1/automationsGETList automations
/api/v1/auth/loginPOSTLogin
/api/v1/auth/refreshPOSTRefresh token
/api/v1/dev/pushPOSTDev push binary
Verification Pattern
bash
# Example: verify a new endpoint returns expected data
TOKEN=$(curl -sf -X POST "${E2E_API_URL}/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d "{\"email\":\"${E2E_ADMIN_EMAIL}\",\"password\":\"${E2E_ADMIN_PASSWORD}\"}" \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['tokens']['accessToken'])")

curl -sf "${E2E_API_URL}/api/v1/<endpoint>" \
  -H "Authorization: Bearer ${TOKEN}" | python3 -m json.tool

Check for:

  • Correct HTTP status code
  • Expected response shape (fields present, correct types)
  • No error messages in response body
  • Correct data values

Phase 6: Agent Log Verification (Agent Only)

Diagnostic Logs API

GET /api/v1/devices/:deviceId/diagnostic-logs

Query parameters:

ParamTypeDescription
levelstringComma-separated: debug, info, warn, error
componentstringFilter by component: heartbeat, websocket, updater, main, etc.
sinceISO stringStart of time range
untilISO stringEnd of time range
searchstringText search in message + fields
pagenumberPage number (default 1)
limitnumberResults per page (default/max 1000)

Example:

bash
curl -sf "${E2E_API_URL}/api/v1/devices/${DEVICE_ID}/diagnostic-logs?level=error,warn&since=$(date -u -v-5M +%Y-%m-%dT%H:%M:%SZ)" \
  -H "Authorization: Bearer ${TOKEN}" | python3 -m json.tool
Direct SQL Fallback

If the API is unreachable or for richer queries:

bash
docker exec breeze-postgres-dev psql -U breeze -d breeze -c "
  SELECT timestamp, level, component, message, agent_version
  FROM agent_logs
  WHERE device_id = '${DEVICE_ID}'
    AND timestamp > now() - interval '5 minutes'
  ORDER BY timestamp DESC LIMIT 30;"
What to Look For
  • No new errors/warnings after deploy — the feature shouldn't introduce regressions
  • Expected log messages — if the feature includes logging, confirm those messages appear
  • Correct agent_version — should show dev-<timestamp> matching the deploy
  • Component tagging — logs should use the correct component name
Enable Debug Shipping

Default shipping level is warn. To get full detail during testing:

json
{
  "type": "set_log_level",
  "payload": { "level": "debug", "durationMinutes": 30 }
}

Send via device commands endpoint or WebSocket. Auto-reverts after duration.

Phase 7: Record Results

Log test results in docs/testing/FEATURE_TEST_LOG.md for traceability.

Entry Format
markdown
## [Feature Name] — YYYY-MM-DD

**Branch:** `branch-name`
**Commit:** `abc1234`
**Tested by:** Claude / Human
**Result:** PASS / PARTIAL / FAIL

### What was tested
- [ ] UI: description of UI verification
- [ ] API: description of API verification
- [ ] Agent: description of agent verification

### Evidence
- Screenshot: (path or description)
- API response: (summary)
- Agent logs: (relevant excerpt)

### Issues Found
- (none, or describe issues)

### Notes
- (any additional context)
TaskCreate Checklist

After recording results, create tasks for any follow-up:

  • Failing tests that need investigation
  • Edge cases discovered during verification
  • Performance concerns observed
  • Documentation gaps

Phase 8: Tear Down

If you brought the stack up for this verification (pnpm wt-stack up, pnpm test-stack up, or a compose-mode up), tear it down from the same worktree and branch — nothing does it for you:

bash
pnpm wt-stack down       # dev stack (drops volumes)
pnpm test-stack down     # integration pg+redis
docker compose ls -a     # confirm nothing from this run is still listed

If you verified against a shared dev stack you did not start, leave it up. Either way, state in the final summary what is still running. Full checklist (orphaned projects, bare containers): worktree-stack skill → "Tear down when done".

Quick Reference

Playwright MCP Cheat Sheet

Load tools first: ToolSearch("playwright")

ActionTool
Open URLbrowser_navigate
Get page structurebrowser_snapshot
Click elementbrowser_click
Fill form fieldsbrowser_fill_form
Take screenshotbrowser_take_screenshot
Check JS errorsbrowser_console_messages
Check networkbrowser_network_requests
Press keybrowser_press_key
Wait for elementbrowser_wait_for
Select dropdownbrowser_select_option
Dev-Push Commands
bash
cd agent && make dev-push                    # Use .env.dev defaults
cd agent && make dev-push DEVICE=<uuid>      # Override device
cd agent && make dev-push API_URL=<url>      # Override API URL
Rate Limit Clear
bash
docker exec breeze-redis redis-cli -a "$(grep '^REDIS_PASSWORD=' .env | cut -d= -f2)" --no-auth-warning EVAL "local k=redis.call('KEYS','login:*'); for _,v in ipairs(k) do redis.call('DEL',v) end; return #k" 0

© LanternOps, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/feature-testing of LanternOps/breeze.

Open the folder on GitHubat commit 1f72bb7

Compare with similar skills

Feature Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Feature Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Feature Testing this skillLanternOps/breeze130—~3kAutomated safety check: NotesAGPL-3.0
Mirroir Onboardjfarcand/mirroir-mcp245—~4.4kAutomated safety check: NotesApache-2.0
Playwright E2Ehmislk/hmis236—~2.3kAutomated safety check: WarnGPL-3.0
Web Application Testinganthropics/skills180k51 repos~966Automated safety check: PassApache-2.0
playwright-cli Browser Automationgithub/gh-aw5.3k23 repos~2.8kAutomated safety check: PassMIT
Write and Verify Playwright Testsappsmithorg/appsmith41k—~2.9kAutomated safety check: NotesApache-2.0

Similar skills

  • Mirroir Onboard

    jfarcand/mirroir-mcp

    Onboard a consumer web app to mirroir's .mirroir/ dotfile by EXPLORING the running app (chrome-devtools-mcp) — derive real selectors from the accessibility tree, exercise each surface's primary…

    245 GitHub stars~4.4k tokensUpdated 2 days ago
    Testing & QAAuto-check: notes
  • Playwright E2E

    hmislk/hmis

    Drive the running HMIS app with the Playwright MCP server for end-to-end verification of a feature (login, department selection, PrimeFaces AJAX forms, confirm dialogs, DB-backed verification).

    236 GitHub stars~2.3k tokensUpdated today
    Testing & QAAuto-check: warnings
  • Web Application Testing

    anthropics/skills

    Official

    Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.

    180k GitHub starsUsed in 51 repos~966 tokens
    Testing & QAAuto-check passed
  • Official

    Drives a real browser from the command line with playwright-cli to open pages, interact, mock requests, save state and work with Playwright tests.

    5.3k GitHub starsUsed in 23 repos~2.8k tokens
    Testing & QAAuto-check passed
  • Writes a Playwright end-to-end test from a prompt, runs it against a live Appsmith deployment and retries with fixes up to three times until it passes.

    41k GitHub stars~2.9k tokensUpdated today
    Testing & QAAuto-check: notes
  • Guides changes and reviews of the Cucumber and Playwright end-to-end suite under `e2e/`: feature files, step definitions, support code, tags, locators and assertions.

    158k GitHub stars~682 tokensUpdated today
    Testing & QAAuto-check passed

More from LanternOps/breeze

All 14 skills in this repo
  • Agent Info

    LanternOps/breeze

    Quick reference for the Breeze RMM Go agent architecture, commands, configuration, build process, and data flows.

    130 GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Agent Log Debugging

    LanternOps/breeze

    A skill your agent uses when debugging agent issues, investigating agent errors, checking agent connectivity, or reviewing agent diagnostic logs.

    130 GitHub stars~1.6k tokensUpdated today
    Auto-check: notes
  • AI Agent

    LanternOps/breeze

    Quick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server.

    130 GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Breeze Helper

    LanternOps/breeze

    Quick reference for the Breeze Helper Tauri desktop app — architecture, Rust backend commands, React frontend, config files, IPC with the Go agent, helper chat API routes, tool approval flow, and…

    130 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • E2E Coverage

    LanternOps/breeze

    A skill your agent uses when running a broad manual/AI-driven end-to-end verification of Breeze RMM across many merged PRs or commits — "test everything since the last release", release-readiness…

    130 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Feature Delivery

    LanternOps/breeze

    A skill your agent uses when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a…

    130 GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Feature Testing

What does Feature Testing do?

Post-implementation end-to-end feature verification. An agent skill from LanternOps/breeze. Feature Testing is an agent skill from LanternOps/breeze. Post-implementation end-to-end feature verification.

When should I use Feature Testing?

Feature Testing fits situations like: tasks that involve Browser testing; tasks that involve End-to-end testing; tasks that involve MCP servers.

How do I install Feature Testing in Claude Code?

Run `npx skills add LanternOps/breeze --skill feature-testing -a claude-code`. Or copy the skill folder (.claude/skills/feature-testing in LanternOps/breeze) into .claude/skills/feature-testing in your project. Claude Code loads it when a task matches its description.

How do I install Feature Testing in Codex?

Run `npx skills add LanternOps/breeze --skill feature-testing -a codex`. Or copy the skill folder (.claude/skills/feature-testing in LanternOps/breeze) into .agents/skills/feature-testing in your project. Codex loads it when a task matches its description.

Can I use Feature Testing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LanternOps/breeze --skill feature-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/feature-testing, .gemini/skills/feature-testing, .github/skills/feature-testing and .opencode/skills/feature-testing in your project.

What does Feature Testing need to run?

Going by SKILL.md and its folder, Feature Testing needs the command-line tools its instructions call (make, curl, python3, docker and pnpm) and credentials named E2E_ADMIN_PASSWORD, BREEZE_API_KEY, AUTH_TOKEN and REDIS_PASSWORD. Our summary lists: Python 3; Docker; A credential in BREEZE_API_KEY; A credential in AUTH_TOKEN.

Does Feature Testing access the network?

SKILL.md contains no URLs. Its commands use curl and docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Feature Testing safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Feature Testing use?

Feature Testing is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Feature Testing use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Feature Testing?

Skills that share tags, products or a category with Feature Testing: Mirroir Onboard (jfarcand/mirroir-mcp, 245 stars), Playwright E2E (hmislk/hmis, 236 stars), Web Application Testing (anthropics/skills, 180k stars) and playwright-cli Browser Automation (github/gh-aw, 5.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Feature Testing?

LanternOps (a GitHub organization) maintains it in LanternOps/breeze, which has 130 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.

Source: LanternOps/breeze on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.