skills/testing/SKILL.md
Sounding-first testing patterns for The Boring JavaScript Stack — one test() API, a Sails-centered trial context, worlds under tests/, JSON and Inertia request testing, mail capture, and browser-capable trials only when the browser truly matters. Use this skill when writing, configuring, or debugging tests in a Sails.js + Inertia.js application.
npx skillsauth add sailscastshq/boring-stack testingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The Boring JavaScript Stack now has one primary testing story: Sounding.
Sounding keeps the familiar test() API, but gives Sails apps one coherent runtime for:
Use this skill when:
node:test, Playwright, or inertia-sails/test suites to Soundingtests/unit, tests/e2e/pages, tests/factories, and tests/scenariosconfig/sounding.js and config/env/test.jssails.helpers, get() / post(), visit(), auth, login, mailbox, or pageKeep these terms straight and use them consistently:
test()sails is the canonical center of that contextPrefer Sounding's public shape:
const { test } = require('sounding')test('...', async ({ sails, get, visit, auth, login, page, expect }) => {})sails.helpers.*sails.sounding.*Do not push people back toward:
getSails() boot helpersinertia-sails/test as the main integration storytests/sounding/ as a framework-branded islandRead the rule files that match the work you are doing:
get(), post(), and visit(){ browser: true }, page, login, and mobile-aware flowsconfig/sounding.js, config/env/test.js, datastores, mail capture, cleanup, and CIdevelopment
Waterline ORM query language, model definitions, associations, and data access patterns for Sails.js. Use this skill when writing, reviewing, or debugging Waterline queries, model attributes, associations, lifecycle callbacks, validations, or any database interaction in a Sails.js application.
development
Cost-aware architecture skill inspired by The Frugal Architect and adapted for The Boring JavaScript Stack. Treat cost as a first-class non-functional requirement, align system shape to the business model, make trade-offs explicit, observe cost and waste, add cost controls, optimize incrementally, and challenge stale assumptions. Use this skill when shaping infrastructure, architecture, scaling, observability, performance, background jobs, caching, or product-engineering trade-offs.
tools
Product-building operating system inspired by Elon Musk's five-step "The Algorithm" — question every requirement, delete nonessential work, simplify what remains, accelerate feedback loops, and automate last. Use this skill when shaping offers, features, onboarding, pricing, architecture, workflow, launch, or automation decisions. Tailored for founders, designers, operators, product engineers, and AI coding agents building real products.
tools
Shipwright build system for The Boring JavaScript Stack — Rsbuild-based asset pipeline replacing Grunt, with framework plugins for React/Vue/Svelte, Tailwind CSS, SSR support, and dev server with HMR. Use this skill when configuring builds, managing assets, or debugging the development server.