SIGN IN SIGN UP

docs: say what simon cannot do, and make the saying enforceable

The crate described itself as "comprehensive hardware monitoring ... across
all platforms". macOS has no GPU, power or temperature reader. That sentence
is what crates.io shows to someone deciding whether to trust this tool.

Adds a "What simon cannot do" section, placed before the feature list rather
than after it, because caveats a reader meets only if they keep going are
decorative. Every entry is something this project has checked and can point
at:

- Windows CPU frequency is nominal, not live — 4400 MHz measured constant
  while system idle went 79.7% to 11.4%.
- CPU percentages on Linux and macOS are averages since boot.
- The Windows ATA SMART parser has never met a SATA drive.
- The Linux profile writers have never executed anywhere.
- macOS readers are checked for plausibility, not correctness.
- `simon tune` can apply and cannot verify: the metric registry is empty
  because no candidate metric survived being checked.
- Intrusion detection watches socket tables, not traffic; file integrity is a
  watchlist, not a sweep; a first scan cannot report a machine clean.

Also corrects two specific falsehoods: "Complete hardware monitoring" over
the CLI reference, and the agent feature list claiming "real-time hardware
metrics" when the CPU figures it reads are averages since boot.

`tests/honesty.rs` makes these claims checkable rather than remembered. The
description may not contain completeness absolutes; the limits section must
precede the features; the empty-metric-registry claim is verified against
`metric_for`, and registering one fails the build until the sentence is
rewritten; a first IDS scan is asserted non-conclusive; the ids module is
asserted to contain no write path, since that is exactly what gets added with
good intentions during an incident.

Verified the tests can fail: reinstating "comprehensive" fails the
description check, and moving the limits section below the features fails the
placement check. Both reverted.

The write-path check initially failed on src/ids/file.rs, because its own
tests create and delete fixtures. It now scans only production source — a
check that cannot tell a test fixture from a monitored host is one somebody
weakens rather than fixes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A
Adam Erickson committed
b785b46487aa91d546cd7d3f8e7637b2f7374b9e
Parent: b3b08ef