Skip to content
Agent Memory
Skill

/testing

Skill validation framework PLUS daily test-suite health and regression intelligence. Validates skill conformance (frontmatter, manifest coverage, resolver coverage). Runs the project test suite in tiered phases (unit / evals / integration / system health), classifies failures,

From plugin
gbrain
33k80 skills

Claude Code

$ npx -y skills add garrytan/gbrain --skill testing --agent claude-code

SKILL.md

testing.SKILL.md
name: testing
version: 1.1.0
description: |
  Skill validation framework PLUS daily test-suite health and regression
  intelligence. Validates skill conformance (frontmatter, manifest coverage,
  resolver coverage). Runs the project test suite in tiered phases (unit /
  evals / integration / system health), classifies failures, and produces
  a regression-aware report.
triggers:
  - "validate skills"
  - "test skills"
  - "skill health check"
  - "run conformance tests"
  - "run the tests"
  - "how are the tests"
  - "what's broken"
  - "daily test run"
tools:
  - search
  - list_pages
mutating: false

Testing Skill — Validation + Daily Health & Regression Intelligence

> **Convention:** see [conventions/quality.md](../conventions/quality.md) for > the test-before-bulk pattern; this skill enforces it across the project's > own test suite.

Two modes

This skill has two related but distinct modes:

1. **Skill conformance validation** — gbrain's own conformance bar (the original 1.0 scope). Validates every skill has SKILL.md with frontmatter, every reference exists, manifest + resolver coverage round-trips.

2. **Project test-suite health (v0.25.1 extension)** — runs the project's tiered test suite and produces a regression-classified report. Used by daily cron, container-restart bootstrap, and "how are the tests" prompts.

Pick the mode by trigger.

Mode 1: Skill conformance validation

Contract

This mode guarantees:

  • Every skill directory has a `SKILL.md` file
  • Every `SKILL.md` has valid YAML frontmatter (`name`, `description`)
  • Every `SKILL.md` has required sections per

`test/skills-conformance.test.ts`

  • `skills/manifest.json` lists every skill directory
  • `skills/RESOLVER.md` references every skill in the manifest
  • `openclaw.plugin.json` `skills[]` round-trips with both
  • `openclaw.plugin.json` keeps OpenClaw install-required native plugin fields

(`id`, object `configSchema`, and `contracts.contextEngines` when applicable)

  • No MECE violations (duplicate triggers across skills)

Phases

1. **Walk skills directory.** List all subdirs containing `SKILL.md`. 2. **Validate frontmatter.** Parse YAML, check required fields. 3. **Validate sections.** Check for the required headings. 4. **Check manifest.** Every skill dir must be in `manifest.json`. 5. **Check resolver.** Every manifest skill must have a RESOLVER row. 6. **Check round-trip.** RESOLVER trigger ↔ frontmatter triggers. 7. **Report results.**

Automation

bun test test/skills-conformance.test.ts test/resolver.test.ts test/openclaw-plugin-manifest.test.ts

The CI-gated check is the package.json `test` script.

Output format

Skill Validation Report
========================
Skills found:        N
Conformance:         N/N pass
Manifest coverage:   N/N
Resolver coverage:   N/N
Round-trip:          N/N
MECE violations:     N

Issues:
- <skill>: <issue>

Mode 2: Project test-suite health (v0.25.1)

When to use

  • Daily test cron fires
  • User asks "run the tests" / "how are the tests" / "what's broken"
  • After significant code changes (often via cross-modal-review)
  • After container restart (bootstrap)
  • When something seems off and you want to verify system health

Test tiers

| Tier | What it runs | Wall time | Gates | |------|--------------|-----------|-------| | **Unit** | `bun test` (deterministic, zero external calls) | <2s | Every commit | | **Evals** | LLM-judge or quality evals | ~60s | Daily | | **Integration** | E2E tests against real Postgres | ~5m | Pre-ship + nightly | | **System health** | Disk / memory / CPU / service liveness | <10s | Daily |

Daily run protocol

When the cron fires (or the user asks), do ALL of this:

1. Run unit tests

bun test 2>&1

Parse: total passed, total failed, total skipped, file-level results.

2. Run evals (if the project has an evals config)

# Adapt to the project's eval config
bun test --filter eval 2>&1

Parse: same format. Note any flakes (tests that fail due to API timeouts, not code bugs).

3. Run system health checks

  • Disk / memory / CPU
  • gbrain: `gbrain doctor --fast --json`
  • Database connection (if applicable)
  • Critical files exist (CLAUDE.md, AGENTS.md, etc.)

4. Git diff analysis (CRITICAL — regression intelligence)

# What changed since last test run?
git log --oneline --since="24 hours ago"

For each failing test:

1. Check if the test itself was modified recently (test change, not regression). 2. Check if the code it tests was modified recently (possible regression). 3. Check if it's a known flake (API timeout, service down). 4. Check if a dependency was updated (gbrain, bun, etc.).

5. Classify each failure

| Classification | Marker | Action | |---------------|--------|--------| | **REGRESSION** — code changed, test broke | 🔴 | Flag with the commit that broke it | | **STALE** — test expects old behavior; code is correct | 🟡 | Fix the test, not the code | | **FLAKE** — API timeout, service down, LLM variance | ⚠️ | Note, don't alarm; retry once | | **NEW** — test was just added and isn't passing yet | 🟢 | Check if intentional | | **INFRA** — container restart wiped state | 🛠 | Run bootstrap, retest |

6. Report format

🧪 Daily Tests — YYYY-MM-DD

Unit:   X/Y passed (Z skipped)
Evals:  X/Y passed
System: [health summary]

REGRESSIONS:
  🔴 <test-name>: broke by commit <sha> "<commit message>"

STALE TESTS:
  🟡 <test-name>: expects X but code now does Y (commit <sha>)

FLAKES:
  ⚠️ <test-name>: timeout (retry passed)

✅ ALL CLEAR  (when applicable)

7. Auto-fix protocol

**DO auto-fix:**

  • Test expects an old file path after a rename → update the test
  • Test expects an old version string → update
  • Test expects a file that was intentionally deleted → remove the test
  • Import path broke because file moved → fix the import

**DO NOT auto-fix:**

  • Test expects behavior A but code now does B
Read more
@garrytan
Ships withgbrain

Garry's Opinionated OpenClaw/Hermes Agent Brain

Stars on GitHub

Momentum

stars in total
33.0k
Star history of garrytan/gbrain on GitHub, a chart by star-history.com

Other skills on gbrain.

brain-ingest-gate

brain-ingest-gate

Pre-write quality gate for content entering the brain. No raw copies: a bare cp/mv into the brain repo is a bug. Before any new…

@garrytan@garrytanInstall Skill
brain-link-discipline

brain-link-discipline

When you report a brain page to the user — created, edited, committed, or relayed from a subagent — a working link is part of the…

@garrytan@garrytanInstall Skill
brain-ops

brain-ops

Brain knowledge base operations. The core read/write cycle: brain-first lookup, read-enrich-write loop, source attribution,…

@garrytan@garrytanInstall Skill
concept-synthesis

concept-synthesis

Deduplicate and synthesize raw concept stubs into a tiered intellectual map (T1 Canon to T4 Riff), tracing idea evolution across…

@garrytan@garrytanInstall Skill
context-audit

context-audit

Token-hygiene audit of the always-loaded context stack — CLAUDE.md, AGENTS.md, auto-memory MEMORY.md, and the bootstrap-rendered…

@garrytan@garrytanInstall Skill
correction-pipeline

correction-pipeline

When the user corrects a factual error, root-cause it immediately. Don't just note the correction — trace the error to its…

@garrytan@garrytanInstall Skill

More skills from other plugins.

agent-cost-report

agent-cost-report

Believable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude…

@thedotmack@thedotmackInstall Skill
bot-handoff

bot-handoff

Keep a durable record of work passed between Bots in the shared Hindsight memory bank. Use when handing work to another Bot, when…

@vectorize-io@vectorize-ioInstall Skill
mempalace

mempalace

Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…

@mempalace@mempalaceInstall Skill
mempalace

mempalace

Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…

@milla-jovovich@milla-jovovichInstall Skill

Questions about testing.

Which coding agents can use testing?
testing installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.