Define supported inputs, numerical budgets, routing, and validation before designing an FLA kernel or numerical change.
80%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.agents/skills/fla-design-coverage/SKILL.mdUse this skill to establish the contract before implementing a kernel, backend route, or numerical change. Read CONTRIBUTING.md for contribution rules, especially public compatibility and design/RFC requirements.
Trace public entries and defaults, backend verifiers, layer/model/CP callers, and existing tests. Record the merge-base SHA and the source of each supported case. Group cases only when they share the same numerical assumptions and execution route; omit combinations no supported caller can reach.
Distinguish routes when kernel stages, chunk geometry or anchors, capability checks, dtype conversions, or input value ranges change. A backend here means an implementation selected by dispatch, including the default implementation, rather than a hardware product. For each group, identify its effective arguments, oracle, output/state and per-gradient tolerances, and test coverage. Assign one outcome:
Preserve previously supported cases under the public compatibility policy. A warning, partially initialized output, or fallback that changes semantics is not a valid outcome. When changing defaults, record the old and new effective values and selected routes.
For each affected stage in forward and backward, record input-range assumptions, load/operand/accumulation/store dtypes, reduction behavior, overflow/underflow headroom, and error propagation to the end-to-end tolerance. Forward agreement alone does not establish backward safety, including inverse recomputation and state gradients.
Safety flags and bounds apply to the stages and domains that justify them. Reassess them when chunk geometry, anchors, dtype staging, or input scaling changes; a safe exponent does not prove that a later inversion is safe. Document the algebra behind numerical acceptance thresholds, implement each shared predicate once, and test its acceptance boundary and the adjacent rejection or fallback. Enforce additional assumptions, such as input-norm bounds, at the public entry or every affected verifier; report the failed predicate and effective values.
Keep the committed oracle, input distributions, assertions, and tolerances fixed while evaluating the candidate. A correction to that contract belongs in a separate change with before/after error distributions for the unchanged baseline and candidate; precision, tolerance, and algorithm changes follow the linked RFC policy. Keep the corrected gate green before the candidate lands. Every selectable autotune configuration must satisfy the same numerical contract.
input_guard handles contiguity and device context, not semantic defaults.fla.utils. Distinguish backend availability, policy enablement, and acceptance of an individual call; use fla-dispatch-backends for implementation mechanics.TRITON_F32_DEFAULT and matmul flags, keep them identical across baseline, candidate, and tests, and restore global settings after tests.Apply the relevant axes from fla-correctness-coverage to each supported group across these distinct layers:
Before performance work, record baseline correctness, latency or throughput, commit, environment, workload, input distribution, and seed. Benchmark production cases first, then boundaries whose routing or expected performance changes. Unaffected boundaries still need correctness coverage. Use fla-optimization-loop to freeze the gate and compare candidates.
fla-org/flash-linear-attention
9819311
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.