0c989f12

Drop the guide citation and the class from a rule

Stacked on #12. Review that first; this diff is against it.

Both were fields the tool carried and nothing acted on. 20 files, and it takes 53 lines out net.

## The class was a label claiming a behaviour

Its own Haddock said so: *"which `list-rules` prints and nothing else acts on"*, and *"Not a runtime setting. Every finding fails the run whatever this says."* Nothing branched on it anywhere. So `TestGenValidSpecPerGenValid` printed `ratchet` and failed the build exactly like an error.

`plan/rule-triage.md` had it right all along: *"Class, the confidence gate a check must clear before it ships. Every rule is on by default and every finding fails, so this is not a runtime setting."* The plan's class column stays, because it is a gate on shipping. The tool's field is gone, because the tool was printing that gate as though it were runtime behaviour.

## The guide said the same thing twice

For `HsNoFilePath` the citation pointed at a section of `haskell-style.md` that says nothing about paths, because the rule was decided in review. But the worse problem was for the rules that *did* have a guide: the report stated the requirement twice, once in the guide's words under the span and once in the rule's own in the note above the reason. The goldens show what a reader was paying for it:

```diff
-     • ╰╸ Put generators (like GenValid instances) in the <package>-gen package
-     │ Note: From haskell-style.md. A GenValid instance in a package's own library
-       gets compiled into the executable. Move it to the matching -gen package.
+     • ╰╸ A GenValid instance in a package's own library gets compiled into the
+       executable. Move it to the matching -gen package.
```

What a rule asks for and why is in `ruleText` and `ruleWhy`, which every finding already carried.

## What went with them

`Class`, `classText`, `GuideRef` and its accessors, their `GenValid` instances and their `genValidSpec` calls. `list-rules` now prints the id, whether this run makes the rule, and what it sees. `explain` drops the guide line and the class from the level line.

Four goldens moved and every changed line is one of the two removals.

## The README check got stronger, not weaker

Its table carried which guide says each rule; it now carries what each rule sees, which `list-rules` still prints. So `scripts/check-readme.sh` holds the levels instead of the citations, and I falsified it again: claiming `HsNoFilePath` is a `project` rule fails it.

## Review loop

```
nix flake check
nix develop --command cabal test hopinion-test --test-options="--ai-executor"
```