Agent skill

Happier Testing

by happier-dev in happier-dev/happier

Author, change, review, delete, or audit Happier tests through observable contracts, canonical testkits, risk-selected validation, and safe subsystem cleanup.

MITAuto-check passedTesting & QA

Install Happier Testing

skills CLI
$ npx skills add happier-dev/happier --skill happier-testing -a claude-code

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

GitHub CLI
$ gh skill install happier-dev/happier happier-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/happier-dev/happier.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/happier-testing .claude/skills/happier-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
happier-testing
GitHub stars
1.9k
Token cost
~4k tokens
SKILL.md length
2,079 words
Files
2 (incl. references)
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Author, change, review, delete, or audit Happier tests through observable contracts, canonical testkits, risk-selected validation, and safe subsystem cleanup.

  • Works in 4 steps: Which observable behavior, invariant,… → Which plausible implementation mistake… → Why does a stronger existing owner-level… → …
  • Behavior-changing TDD and for test-infrastructure
  • SKILL.md covers Goal, Workflow, Test Value Gate and Test Audit And Mechanical…, plus 7 more sections
  • Calls yarn

What it does

Happier Testing is an agent skill from happier-dev/happier. Author, change, review, delete, or audit Happier tests through observable contracts, canonical testkits, risk-selected validation, and safe subsystem cleanup. Use for behavior-changing TDD and for test-infrastructure or test-pruning work.

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/test-audit.md`).

It sits in Testing & QA, covering Test-driven development. The repository describes itself as: Web, Desktop & Mobile client and orchestrator for Codex, Claude Code, OpenCode, Pi, Cursor, Grok, Antigravity, Kimi, Augment Code, Qwen, fully end-to-end encrypted. The licence is MIT.

When your agent uses it

  • Behavior-changing TDD and for test-infrastructure
  • Test-pruning work

Example prompts

  • “/happier-testing”

Requirements

  • Docker

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Which observable behavior, invariant, released contract, or reachable material risk does it protect?
  2. Which plausible implementation mistake would make it fail?
  3. Why does a stronger existing owner-level test not already catch that mistake?
  4. Does the test require a production export, reset, dependency injection seam, or mode that no production caller needs?

What it can do on your machine

Read from SKILL.md and the folder at commit 493820f. 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:

    • yarn

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

  • Network

    No URLs in SKILL.md. Its commands use yarn, 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 no API keys, tokens, secrets or passwords.

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

Context cost

Happier Testing loads about 4k tokens when it runs, and up to ~5.2k if it reads all its reference files. Until then it costs about 64 tokens; SKILL.md has 2,079 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.2k

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 passed

The automated check found no risky patterns in SKILL.md.

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 happier-dev/happier at commit 493820f, republished under its MIT licence (© happier-dev). 2,079 words, ~3,961 tokens.

Download SKILL.mdSave it as .claude/skills/happier-testing/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
happier-testing
description
Author, change, review, delete, or audit Happier tests through observable contracts, canonical testkits, risk-selected validation, and safe subsystem cleanup. Use for behavior-changing TDD and for test-infrastructure or test-pruning work.

Happier Testing And TDD

Use this skill whenever work adds, changes, reviews, deletes, or audits tests, fixtures, testkits, lane wiring, or validation behavior. It is the single test-quality owner; CI failure collection remains in .agents/skills/happier-ci-stabilize.

Goal

Apply strict RED-GREEN-REFACTOR while following Happier-specific lane, fixture, and rerun rules so changes do not silently drift until a late pipeline sweep.

Workflow

  1. Inventory first
  • Search for existing tests by symbol, route, command, feature id, config key, component name, or error code.
  • Map the affected lane(s) and any shared/package-local harnesses the change can invalidate before editing code.
  • Name the observable contract or material risk the test must distinguish before writing it.
  • For user-visible or environment-dependent work, define the composed live recipe before implementation: exact entry point, provider/account/state, actions, expected outcome, recovery path, and build/bundle/runtime identity that will prove the result.
  • Update the most relevant existing test first when possible.
  • Consolidate overlapping tests instead of stacking new ones on top.
  1. Classify failures correctly
  • production defect: runtime behavior is wrong
  • stale test or expectation: assertions/fixtures assume an obsolete contract
  • harness or mock defect: helpers/mocks/testkit do not represent real runtime wiring
  • release-control or setup defect: workflow admission, permissions, generated prerequisites, or configuration are wrong
  • external service or configuration defect: an external dependency, credential, account, or published state is unavailable or invalid
  • resource or timeout defect: the owning resource budget, cleanup, runner, or lifecycle bound is wrong
  • inconclusive: available evidence cannot yet identify the owning class
  1. RED
  • Write or update the smallest relevant test first.
  • Run only the smallest relevant slice and confirm it fails because the intended behavior is missing or wrong, not because of setup, fixtures, mocks, wording, syntax, or an unrelated error.
  1. GREEN
  • Implement the smallest fix that satisfies the failing behavior.
  • Keep internal behavior real; mock only system boundaries.
  1. REFACTOR
  • Extract shared helpers only when there is repeated real duplication or repeated stale drift.
  • Keep file responsibilities focused.
  1. Broaden validation
  • After focused GREEN, run risk-selected adjacent checks; batch expensive package/build and broader checks at the coherent integration boundary under root Validation. Reuse applicable execution evidence under that policy instead of rerunning it for each handoff.
  • Intermediate handoffs name any deferred check, later owning boundary, and prerequisite. Final handoffs require applicable successful evidence for each required lane or report the missing gate blocked.
  • Validate the current moving source and the existing development stack. Feature validation must not create, freeze, pack, install, identify, or certify a separate release representation; archive production and publication verification belong only to release automation during an explicitly dispatched release.

Test Value Gate

  • Scope-preserving solution economy never caps evidence. Test and QA depth follow materially distinct behavior, reachable failure modes, and risk; implementation size, line count, or a desire for one runnable check cannot justify dropping a required contract, edge/failure/recovery case, compatibility direction, platform path, or live gate.
  • TDD proves an observable contract; it does not require a new test for every changed function, branch, helper, or file.
  • Prefer strengthening or consolidating the canonical owner-level test over adding overlapping coverage.
  • One discriminating test is more valuable than many shallow permutations. Add cases only for materially different contracts, boundaries, or failure modes.
  • A useful test distinguishes the intended implementation from at least one plausible incorrect implementation. A meaningful original RED proves sensitivity while it still exercises the relevant defect. If that evidence is absent or no longer applicable, demonstrate the failure with a focused mutation/reproduction through the owner boundary; do not repeat a mutation merely for another handoff. Preserve unrelated shared edits.
  • When a check passes too easily or contradicts visible behavior, challenge the observation method before trusting the system. Verify that fixture state reaches the deciding branch, the assertion reads the field production writes (accessor-backed objects such as Headers do not expose plain properties), the instrument can observe the claimed cost or state, and the code under test cannot swallow its own failure and read as a pass.
  • Do not add runtime tests that merely restate TypeScript types, mirror implementation structure, assert pass-through wiring or incidental call counts, or police wording, formatting, raw styles, or example values.
  • Exercise real internal behavior through the canonical/public owner boundary whenever practical.
  • Remove or consolidate redundant tests introduced or exposed by the change.

Before retaining or adding a test, answer all four questions:

  1. Which observable behavior, invariant, released contract, or reachable material risk does it protect?
  2. Which plausible implementation mistake would make it fail?
  3. Why does a stronger existing owner-level test not already catch that mistake?
  4. Does the test require a production export, reset, dependency injection seam, or mode that no production caller needs?

A missing answer is a review signal, not an automatic deletion verdict. Static inspection remains valid when it is the cheapest independent proof of a public API, generated artifact, package boundary, workflow permission/trust contract, migration, security property, or platform configuration and survives behavior-preserving refactoring.

Test Audit And Mechanical Cleanup

For an explicit test-pruning, test-infrastructure, or whole-subsystem audit, read test-audit.md. Audit one canonical owner or subsystem at a time. Use deterministic analyzers and codemods for mechanical repetition, but keep contract value, keeper selection, compatibility obligations, and deletion decisions evidence-led.

Compatibility Contract Gate

  • Use .agents/skills/happier-compatibility when a behavior change affects wire/semantic contracts, persistence, schemas/migrations, feature negotiation, installer/service state, mixed versions, upgrades, or rollback.
  • Name the exact released/predecessor producer and consumer plus the direction the test proves. Prefer the real historical serializer/client/artifact or a provenance-pinned golden vector; do not reconstruct “old” behavior from current types or a new mock.
  • Add one discriminating contract/vector test per material reachable direction, then only the risk-selected end-to-end flows. Do not multiply UI × CLI × daemon × server permutations when the changed seam does not couple them.
  • Inventory and consolidate existing compatibility fixtures and harnesses before adding another family; a compatibility test must not create a second implementation of the protocol it is meant to verify.

Happier Lane Map

Canonical top-level lanes:

  • yarn test
  • yarn test:integration
  • yarn test:e2e:core:fast
  • yarn test:e2e:core:slow
  • yarn test:e2e:ui
  • yarn test:providers
  • yarn test:db-contract:docker

CLI lane rule:

  • apps/cli unit tests must not force a full CLI dist build.
  • Use the lane-specific global setup files:
    • src/test-setup.unit.ts
    • src/test-setup.integration.ts
    • src/test-setup.slow.ts

Fixture And Mock Policy

  • Do not partially mock central shared modules such as @/sync/domains/state/storage.
  • Prefer package-local shared factories/testkits for repeated boundary mocks.
  • Keep cross-repo primitives in packages/tests/src/testkit.
  • Before adding a new helper or mock family, inspect the codebase for the existing canonical testkit/helper for that boundary. On a structural fixture/setup mismatch, trace the real producer-to-consumer input graph before another rerun; repair coherent fixtures rather than adding internal stubs one failure at a time.
  • Prefer reusing, extending, generalizing, or extracting from canonical helpers over introducing similar-but-different variants.
  • When a new canonical helper replaces older local variants, migrate or remove the overlapping variants instead of leaving parallel helper families behind.
  • Be careful with repeat-offender boundaries: prefer canonical helpers over fresh inline mocks for UI boundaries such as expo-router, @/text, @/modal, react-native, and react-native-unistyles; prefer existing server route/DB harnesses over direct storage mocks when available.
  • For apps/ui tests, treat apps/ui/sources/dev/testkit/** as the default surface. Read apps/ui/sources/dev/testkit/README.md first and prefer imports from @/dev/testkit for mocks, fixtures, render helpers, hook helpers, and harnesses.
  • Do not add new inline vi.mock(...) families for expo-router, @/text, @/modal, react-native, react-native-unistyles, or @/sync/domains/state/storage when the UI testkit already owns that boundary. If a needed case is missing, extend the canonical UI testkit helper in the same change instead of inventing a file-local mock family.
  • If a one-off local UI override is truly unavoidable, keep it minimal, base it on the canonical factory where possible, and leave a short justification comment rather than turning it into a new reusable pattern.
  • Prefer typed fixtures/builders from the owning testkit over repeated inline object literals whenever the same state/session/theme/config shape is reused across tests.
  • When one boundary spy carries several event kinds (for example a session socket), filter to the event owned by the contract before asserting. A total call count is incidental and becomes stale whenever an unrelated valid event is added.
  • Extend the canonical boundary harness's default behavior for the one exceptional event under test. Do not replace the whole boundary with a one-response stub that silently stops acknowledging neighboring protocol calls.
  • Keep package-specific fixtures near the owning package:
    • UI helpers in apps/ui
    • CLI helpers in apps/cli
    • server helpers in apps/server
Show full SKILL.md (703 more words)Show less

UI E2E Rules

  • Use stable testID selectors, not visible copy, as the primary selector contract.
  • Click the real submit/confirm button after waiting for it to be enabled.
  • Do not rely on Enter-to-send or similar settings-sensitive shortcuts unless the test explicitly configures the setting first.
  • When a UI flow changes, update the corresponding Playwright spec in the same change.
  • Use packages/tests/src/testkit/uiE2e/browserDiagnostics.ts for browser console, page-error, failed-request, and error-response collection. Append diagnostics with its stack-preserving helper; never replace the original exception with a new wrapper that erases the deciding callsite.
  • Label repeated lifecycle waits by phase (for example, initial upload versus conflict retry). When one scenario crosses filesystem, daemon, API, and UI boundaries, capture enough outcome state to identify the boundary that failed rather than increasing every timeout.
  • Configure the UI state the assertion actually needs. In particular, a plain or all-untracked workspace is empty in the repository tree's Project visibility mode; use the shared repository-tree visibility helper when the scenario requires All files. Do not weaken the product's default just to make a fixture visible.

Anti-Flake Process Rules

  • Within this task and its delegates, reuse an active run of the same spec/lane instead of launching an equivalent rerun. Follow root waiting/recovery policy; this requires no cross-session monitor coordination.
  • If a runner hangs or is killed, inspect whether the failure is repo-owned, harness-owned, or environmental before retrying blindly.
  • When shared process helpers change, rerun a broader lane that can reveal leaked handles or child-process cleanup regressions.
  • Before starting Metro/Playwright in a shared development VM, inspect current compiler, Vitest, and Metro load. A bundle-fetch timeout while several unrelated compilers or Metro servers saturate the same VM is not valid RED evidence. Wait for capacity or use the configured execution target, then rerun the same command; do not encode local contention as a larger repository timeout.
  • Preserve the runner's original stack, phase label, browser diagnostics, and focused artifacts. If the hosted log omits the deciding state, download the bounded Playwright shard artifact before rerunning; inspect metadata first and avoid blindly fetching oversized diagnostics trees.
  • When a failure involves a timeout, retry count, request/body cap, or other bound, first prove which lifecycle or resource owner should govern it. Do not turn one slow run or fixture size into a new production limit. A deciding regression test should show reuse of the canonical budget/boundary and accept valid work beyond the incorrect local cutoff it replaces.

Live Validation Gates

Host-test green alone is not shippable for user-visible behavior; this skill owns the lane-level live-validation rules.

  • Treat live gates (managed-stack browser QA, argent device QA) as ship gates for UI-visible changes; write or extend host tests from what the live loop taught, afterwards.
  • For daemon/session/provider/API behavior that depends on real process, transport, authentication, persistence, or provider semantics, run the named composed CLI/API/daemon recipe when the authorized environment is available. Corridor tests do not replace this gate.
  • If a defect family escapes host tests twice, stop adding host tests and switch to live-in-the-loop: fix → load and identify the updated build/bundle/module actually consumed → replay the exact failing recipe → verify live, closing each defect with a live PASS against that observed basis in the same session.
  • Reuse an applicable successful full-suite result; release use alone does not require running it twice. Repeat the affected lane when investigating nondeterminism, shared-state leakage, order dependence, or when an explicit release protocol requires independent execution. Two passes are evidence, not proof of determinism.
  • If a documented memory-heavy UI host suite OOMs at the default heap, rerun with NODE_OPTIONS=--max-old-space-size=8192 instead of silently narrowing the lane.
  • Device QA must pin bundle identity when stale Metro state could invalidate the result: full Metro reload, Fast Refresh off, and a module probe.

Do not mark a validation step complete merely because wiring is registered, a command reached a compiler/test runner, or a background process remains running. Record the terminal exit/result and decisive product evidence. If the live recipe cannot run, mark it BLOCKED with the missing prerequisite and next action; do not substitute more host tests and call the behavior shipped.

Output Expectations

When reporting testing work, summarize:

  • failing area and classification
  • root cause
  • targeted RED/GREEN evidence
  • broader validation performed or applicable evidence reused; outstanding checks and prerequisites
  • residual risk, if any

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

Files

SKILL.md and 1 other file (references) in .agents/skills/happier-testing of happier-dev/happier.

  • SKILL.md
  • references/test-audit.md

Open the folder on GitHubat commit 493820f

Compare with similar skills

Happier 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.

Happier Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Happier Testing this skillhappier-dev/happier1.9k—~4kAutomated safety check: PassMIT
TDDfossasia/eventyay-interpretation1.6k28 repos~1.1kAutomated safety check: PassApache-2.0
TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph11211 repos~2.4kAutomated safety check: PassNone
TDDsanity-io/sanity6.4k20 repos~1kAutomated safety check: PassMIT
Test Driven Developmentfarm-fe/farm5.6k49 repos~2.5kAutomated safety check: PassMIT
Tapd Story PipelineTencentBlueKing/bk-bcs840—~2.6kAutomated safety check: PassCustom licence

Similar skills

  • TDD

    fossasia/eventyay-interpretation

    Test-driven development. An agent skill from fossasia/eventyay-interpretation.

    1.6k GitHub starsUsed in 28 repos~1.1k tokens
    Testing & QAAuto-check passed
  • TDD Workflow

    hellangleZ/burn-in-cceverywhere-ralph

    A skill your agent uses when writing new features, fixing bugs, or refactoring code.

    112 GitHub starsUsed in 11 repos~2.4k tokens
    Testing & QAAuto-check passed
  • TDD

    sanity-io/sanity

    Official

    Test-driven development with red-green-refactor loop. An agent skill from sanity-io/sanity.

    6.4k GitHub starsUsed in 20 repos~1k tokens
    Testing & QAAuto-check passed
  • A skill your agent uses when implementing any feature or bugfix, before writing implementation code

    5.6k GitHub starsUsed in 49 repos~2.5k tokens
    Testing & QAAuto-check passed
  • Tapd Story Pipeline

    TencentBlueKing/bk-bcs

    单需求实现流水线——把一个 TAPD 需求从零推进到代码提交。自动串联技术澄清、 开发计划、任务拆分、TDD 实现、架构/安全校验、代码提交六个阶段。

    840 GitHub stars~2.6k tokensUpdated 13 days ago
    Testing & QAAuto-check passed
  • Absolute Init

    maddhruv/absolute

    One-time setup for absolute: interview how you want it to behave (output style, autonomy, TDD strictness, spec dir, families) + detect the stack once, then write .absolute.config.json (project…

    218 GitHub starsUsed in 1 repo~3k tokens
    Testing & QAAuto-check passed

More from happier-dev/happier

All 28 skills in this repo
  • Happier Review

    happier-dev/happier

    Conduct evidence-backed Happier code, plan-completeness, session, worktree, feature, commit, branch, PR, codebase, and release-readiness reviews with affected-corridor analysis, high-confidence…

    1.9k GitHub stars~4.5k tokensUpdated today
    Auto-check passed
  • Happier CI Stabilize

    happier-dev/happier

    Stabilize failing, flaky, slow, or repeatedly rerun Happier CI and nightlies by collecting all reachable failures from one exact attempt, correcting canonical causes in one batch, simplifying…

    1.9k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Happier Commit Worktree

    happier-dev/happier

    Reconnoiter, classify, validate, group, and commit a large or continuously changing Happier worktree as coherent, human-understandable commits while preserving concurrent work and excluding…

    1.9k GitHub stars~3.9k tokensUpdated today
    Auto-check passed
  • Happier Release

    happier-dev/happier

    Resolve Happier's private release authority and run an exact-SHA release or nightly through cheap admission, verified CI evidence, resumable immutable candidates, and terminal publication proof.

    1.9k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Happier Diagnose

    happier-dev/happier

    Diagnose and explain a Happier runtime, session, daemon, provider (Claude/Codex/OpenCode), authentication, or connectivity incident from logs, structured diagnostics, runtime state, and source…

    1.9k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Happier Implement

    happier-dev/happier

    Implement, change, build, fix, refactor, migrate, or apply accepted review findings in the Happier repositories with canonical-owner discovery, scope-preserving solution economy, TDD, efficient…

    1.9k GitHub stars~4.2k tokensUpdated today
    Auto-check passed

Categories

Questions about Happier Testing

What does Happier Testing do?

Author, change, review, delete, or audit Happier tests through observable contracts, canonical testkits, risk-selected validation, and safe subsystem cleanup. Happier Testing is an agent skill from happier-dev/happier. Author, change, review, delete, or audit Happier tests through observable contracts, canonical testkits, risk-selected validation, and safe subsystem cleanup.

When should I use Happier Testing?

Happier Testing fits situations like: behavior-changing TDD and for test-infrastructure; test-pruning work.

How do I install Happier Testing in Claude Code?

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

How do I install Happier Testing in Codex?

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

Can I use Happier 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 happier-dev/happier --skill happier-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/happier-testing, .gemini/skills/happier-testing, .github/skills/happier-testing and .opencode/skills/happier-testing in your project.

What does Happier Testing need to run?

Going by SKILL.md and its folder, Happier Testing needs the command-line tools its instructions call (yarn). Our summary lists: Docker.

Does Happier Testing access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Happier Testing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Happier Testing use?

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

How many tokens does Happier Testing use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.

What are the alternatives to Happier Testing?

Skills that share tags, products or a category with Happier Testing: TDD (fossasia/eventyay-interpretation, 1.6k stars), TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars), TDD (sanity-io/sanity, 6.4k stars) and Test Driven Development (farm-fe/farm, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Happier Testing?

happier-dev (a GitHub organization) maintains it in happier-dev/happier, which has 1,876 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 7, 2026.

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