Files
Maven/docs/caveats/CLAUDE.md
T
claude c0f4074a5d Give the audit's open findings a home and a trigger (V-674)
Nineteen of the twenty findings were open, and they lived in an untracked
audit.md at the repo root that no next session would have read. The one that
is closed, the unauthenticated mavgpud proxy, went out as V-673.

The report is now a frozen measurement under docs/evals/, dated and never
edited again — including when a finding it names gets fixed. The live state
moved to docs/caveats/, one entry per limit, each carrying its Vikunja id and
the condition that makes it worth fixing. A caveat with no revisit trigger is
a complaint, so every entry has one. Closing a limit deletes its entry rather
than editing the measurement that found it.

Two directory indexes come with it. docs/CLAUDE.md states the tier rule the
repo already followed by convention: living docs corrected in place, evals
frozen by date, caveats deleted when fixed. docs/caveats/CLAUDE.md indexes the
nineteen by claim and severity, because an index of filenames adds nothing a
directory listing does not.

Tasks V-675 through V-693 carry the plans. The doc line and the tracker now
join in both directions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ESv8hqNPseYt1CnotZpqDz
2026-08-11 10:41:54 +04:00

2.6 KiB

docs/caveats/

One entry per known limit: something broken, deferred or unsafe that a session will otherwise walk into. An entry names what fails, who it costs, and the condition that makes it worth fixing.

Two things do not belong here. The evidence is a dated file under docs/evals/. The reasoning behind a subsystem is its living doc directly under docs/. A caveat is the pointer between them plus the trigger.

Rules for this directory

  • One file per area, one ## section per limit, each carrying its task id.
  • A caveat with no revisit trigger is a complaint. Give it one or delete it.
  • Closing a limit deletes its entry. It does not edit it to say "fixed", and it never edits the frozen measurement it came from. The durable record of a fix is the commit and the subsystem's living doc.
  • An entry whose task is closed but whose limit is still live is the failure mode to watch for. The id joins the two directions, so check both.

Index

Every entry below came from the 2026-08-10 deep audit (docs/evals/2026-08-10-repo-audit.md). One of the twenty findings, the unauthenticated mavgpud proxy, was fixed as V-673 and has no entry.

limit severity
Go 1.25.5 and x/text 0.14.0 carry 20 reachable advisories high
Anyone past the proxy can enroll a passkey high
Passkey credentials are rewritten in place medium
An empty STT transcript reads as a successful one medium
Open-Meteo's empty body becomes 0°C medium
Dialogue persistence errors are swallowed medium
The reminder transition is a lost update medium
A recall miss scans two whole tables medium
Closing a TCP listener can strand Accept medium
PTT reads an unbounded body medium
mavweb errors cannot be traced medium
Fact enrichment is a 20-call serial waterfall medium
A suppressed nudge is phrased anyway medium
heads_path may equal model_path medium
baselineGrammars is mirrored by hand medium
Committed absolute paths pin the build to this box medium
The env example omits deployed variables medium
Domain packages depend on store and IPC types low
Eleven symbols are unreachable low