<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
<!-- Per-language testing guide TEMPLATE. Copy to <language>-testing-guide.md and
     fill every section. `scripts/check-language-guide.sh` fails if a required
     section (## heading) is missing. Replace <LANGUAGE> and the bracketed cells. -->
# <LANGUAGE> Testing Tools Guide

**Version:** 1.0.0
**Date:** <YYYY-MM-DD>
**Status:** <Draft | Active>
**Parent standard:** `language-testing-standards.md` (R1–R9)

One-paragraph purpose: what this guide covers and who maintains it.

## Requirement mapping

The single most important table: map each requirement from
`language-testing-standards.md` to a CONCRETE, CI-runnable tool, or the literal
`none` (visible, never a silent gap). A `none` on a MUST row is a real gap.

| # | Requirement | Level | Tool | CI invocation | Status |
|---|---|---|---|---|---|
| R1 | Unit test runner | MUST | `<tool>` | `<cmd>` | pass / gap |
| R2 | Formatter (check mode) | MUST | `<tool>` | `<cmd>` | pass / gap |
| R3 | Linter / static analysis | MUST | `<tool>` | `<cmd>` | pass / gap |
| R4 | Coverage | SHOULD | `<tool>` | `<cmd>` | pass / gap |
| R5 | Property-based / fuzz | SHOULD | `<tool>` | `<cmd>` | pass / gap |
| R6 | Benchmark | SHOULD | `<tool>` | `<cmd>` | pass / gap |
| R7 | Security / dependency audit | MUST\* | `<tool>` | `<cmd>` | pass / gap |
| R8 | Contract / pre-post | MAY | `<tool>` | `<cmd>` | pass / gap |
| R9 | Proof check | MUST\* | `<tool>` | `<cmd>` | pass / gap |

`MUST*` = R7 applies only if the language has a package ecosystem; R9 only if the
language's role includes formal verification.

## Tools

For each tool named above: purpose, install, minimal usage, and the exact CI
step. Keep it copy-pasteable.

### <Tool 1> (<requirement it satisfies>)
- **Purpose:** …
- **Install:** …
- **Usage:** …
- **CI:** …

## Recommended CI pipeline

A single, SHA-pinned, copy-pasteable CI workflow that runs the MUST rows as
blocking and the SHOULD rows as reported. No `continue-on-error` on a MUST check.

## Best practices

Language-specific conventions (project layout, coverage target, warnings-as-errors).

## Known gaps

List every `none`/`gap` from the requirement mapping with the reason and, if
tracked, the issue/charter. This section MUST be honest — an empty "Known gaps"
means every requirement is genuinely met.

## Resources

Links to the tools' upstreams and the parent standard.

**Maintainers:** <@owner>
**Last Updated:** <YYYY-MM-DD>
