Philosophy: "We break things so others never have to know they were broken."
This skill generates F1-inspired test suites following the WJTTC (Wolfe James Tests The Code) methodology.
| Goal | How |
|---|---|
| Pre-defined | Test plan before code → improves code quality |
| Inline Testing | Tests/approves at write time → catches bugs at inception |
| Layer 1 → Layer 2 | Industry + Expert = GOLD Code |
| AI Optimized | 100% bi-sync with project.faf |
| Best Code Possible | ✪ Championship standard |
Code earns GOLD status when:
┌────────────────────────────────────────┐
│ ✪ GOLD CODE ✨ │
│ ════════════════════════════════════ │
│ ✓ Pre-test plan defined │
│ ✓ Inline testing at write time │
│ ✓ Layer 1: 100% industry coverage │
│ ✓ Layer 2: WJTTC expert edge cases │
│ ✓ Bi-sync with project.faf │
│ ✓ All tests passing │
│ ════════════════════════════════════ │
│ This code has earned its name. │
└────────────────────────────────────────┘
WJTTC comes AFTER project.faf, BEFORE coding:
1. project.faf → Define WHAT we're building (context)
2. WJTTC-TESTS.md → Define SUCCESS CRITERIA (tests first)
3. Code → Build to pass the tests
4. Test → Pass/Fail
5. Repeat → Until Championship grade
The WJTTC Cycle:
Think → Cross-check → Confirm → Code → Test → [Repeat]
│ │ │ │ │
│ │ │ │ └── Pass/Fail verdict
│ │ │ └── Write implementation
│ │ └── Green light to proceed
│ └── STOP if missing info - get it first
└── Understand what we're building
Cross-check Gate: STOP if missing information. Get it before proceeding.
Red → Green → Refactor:
Never code without knowing what "done" looks like.
Use the framework's native testing - Jest, pytest, Vitest, etc.
This is the baseline. Non-negotiable.
The championship layer that catches what industry tests miss:
| Category | What We Test |
|---|---|
| Syntax | Special chars, escapes, quotes, brackets |
| Emoji | 🏎️ in strings, filenames, variables |
| Typecases | camelCase, snake_case, SCREAMING_CASE, mixed |
| Variables | Empty, null, undefined, MAX_INT, negative |
| Unicode | RTL text, combining chars, zero-width |
| Injection | SQL, XSS, command injection attempts |
| Boundaries | 0, 1, -1, MAX, MAX+1, empty array |
Test Targets:
Meta-testing checklist:
Before you measure coverage, measure signal trust.
Red CI is a contract: stop, look, fix. If red means "shrug, runner had a noisy neighbor, just rerun," the signal is dead — and dead signal is worse than no signal at all. A test suite with 100% coverage but flaky reds is less trustworthy than one with 80% coverage and zero false alarms, because the team has stopped reading the reds.
This is the parent doctrine. Every other testing principle serves it.
For any test suite under review, classify the last 30 days of CI failures into three buckets:
| Bucket | Meaning | Action |
|---|---|---|
| Real bug | Red corresponded to an actual code defect that was fixed by a code change | ✓ Signal worked |
| Flake | Red was timing/network/concurrency noise; passed on rerun with no code change | ✗ Test design defect |
| Infra | Red was missing secret, runner image change, dep upstream — not the code under test | ✗ Workflow design defect |
SI = (Real bugs) / (Real bugs + Flakes + Infra) × 100
| SI % | Verdict | Required Action |
|---|---|---|
| 100% | TROPHY ✪ | Maintain — exemplary signal |
| 95-99% | Championship | Annotate any flake immediately |
| 85-94% | Acceptable | Schedule flake-class fix this sprint |
| 70-84% | Eroding | Stop adding tests; fix flakes first |
| <70% | DEAD SIGNAL | Block all merges until signal restored |
The credibility problem precedes the coverage problem. A suite at 60% coverage with 100% SI is healthier than one at 95% coverage with 70% SI.
expect(time).toBeLessThan(30). Move to non-gating workflow with continue-on-error: true.Green CI that passes when something is broken is equally a contract violation. If a real bug shipped despite green CI, that's a coverage gap that demands a regression test BEFORE the fix lands. Treat false negatives with the same urgency as false positives.
Automated CI is supporting infrastructure. The human + AI conversational audit — noticing patterns, tracing root causes, fixing systems — is the actual quality gate. Flaky CI wastes the conversation's bandwidth. Signal Integrity exists to keep CI worthy of the conversation it serves.
WJTTC has five tiers: Brake · Engine · Aero · Tyre · Pit. The builder classifies every component into one of them. (faf wjttc audits a suite for the same five and flags untiered tests — name your tests with a tier word so the audit can place them.)
When failure = catastrophic consequences
Identify and test:
When failure = poor experience or incorrect results
Identify and test:
When failure = minor inconvenience
Identify and test:
Where the rubber meets the road: durability under real conditions over time
Identify and test:
The pit stop: getting it onto the track and keeping it serviceable
Identify and test:
To understand what to test:
For each identified component, assign one of the five tiers:
Tier 1 (Brake): Authentication, data writes, payments, security
Tier 2 (Engine): Core features, API responses, business logic
Tier 3 (Aero): UI polish, optional features, error formatting
Tier 4 (Tyre): Edge cases, durability, soak/load, degraded conditions
Tier 5 (Pit): Integration, deploy/release checks, ops health, rollback
Create a WJTTC-TEST-SUITE.md file with:
If requested, generate test files:
tests/*.test.js (Jest/Vitest)tests/test_*.py (pytest)tests/test_*.sh (shell scripts)project/
└── tests/
├── WJTTC-TEST-SUITE.md # Test plan document
├── test_tier1_brake.js # Executable tests (optional)
├── test_tier2_engine.js
├── test_tier3_aero.js
├── test_tier4_tyre.js
└── test_tier5_pit.js
Pass rate maps to the canonical FAF tier system (the same tiers FAF uses everywhere):
| Score | Tier | Symbol | Status |
|---|---|---|---|
| 100% | Trophy | ✪ | Perfect — Gold Code |
| 99% | Gold | ★ | Exceptional |
| 95% | Silver | ◆ | Top tier |
| 85% | Bronze | ◇ | Production ready |
| 70% | Green | ● | Solid foundation |
| 55% | Yellow | ● | Needs improvement |
| 1% | Red | ○ | Major work needed |
| 0% | White | ♡ | Empty |
To generate a test suite for the current project:
### T1.1 - [Test Name]
**Status:** ⏳ PENDING
**Priority:** CRITICAL
| Test | Expected | Actual | Status |
|------|----------|--------|--------|
| [Scenario 1] | [Expected result] | | |
| [Scenario 2] | [Expected result] | | |
**Test Command:**
\`\`\`bash
[How to run this test]
\`\`\`
This skill is the builder: it plans and generates. It does not run the suite.
wjttc-tester skill (it runs tests, finds bugs, writes WJTTC reports).faf wjttc classifies an existing suite across the five tiers and flags untiered tests (--strict exits non-zero on any untiered; --json for CI). Name your generated tests with a tier word (brake/engine/aero/tyre/pit) so the audit can place them.faf taf setup installs the TAF receipt printer so each run leaves a verifiable record.Championship Testing Standards 🏎️