# Adversarial reviews — rolling index
One bullet per review: `decision:` / `risk:` / `followup:` with named owners.
Reviews live beside this file as `YYYY-MM-DD-slug.md`, run via the
`adversarial-review` skill.
## Reviews
- [2026-08-23 lowell-visual-redesign](./2026-08-23-lowell-visual-redesign.md)
- decision: proceed; adopt s10's chassis (rail/density/motion) but refuse its
palette — amber stays reserved for human provenance and the ungoverned verdict
- risk: retires the light-linen phantom-thread sibling identity as default — a
same-day decision, reversed here deliberately and on the record (accepted: Juno)
- outcome: shipped; kill criterion not triggered (`/` LCP p50 808ms vs 2500ms).
Caught two real issues pre-ship (palette collision, unread image rights);
missed four runtime bugs that only running it surfaced — see the outcome section.
- followup: [ ] jdetle — re-read LoC rights for `afcwip001704` (punched-card photo,
deleted unread) when the item API is not rate-limited
- followup: [ ] jdetle — move LoC imagery to `next/image` if it ever goes above the fold
## Target list for the first review (seeded 2026-08-23)
- **Provenance is self-reported at creation.** The content address makes
relabelling visible *after* commit; nothing verifies the label was true
when supplied. Is the honest-scoping language enough for a v1, or does
signing need to move up the unblock list? — owner: jdetle
- **`HumanIdentity` is constructible by anyone in-process.** The
attestation invariant is type-level, not authentication. Where is the line
between "milestone-1 honesty" and "over-claiming"? — owner: jdetle
- **The gate admits ungoverned paths.** `decisions_checked: 0` is reported
honestly, but a team that declares no scopes gets no protection and may
believe otherwise. Should promotion of never-governed paths warn, or is
that nagging? — owner: jdetle
- **Sketch publication is voluntary and unauthenticated.** An org could
publish a rival's sketches, or spam the registry to fish for
introductions. Registry transport (unblock #4) needs an abuse model
before it exists. — owner: jdetle
- **MinHash resemblance testing.** An adversary with a candidate text can
test it against published sketches (stated in the docs). Is 64 lanes the
right point on the privacy/recall curve, and should lane count be
per-publication? — owner: jdetle
- **Interviewer incentive risks.** The Rationale-style interviewer (unblock
#2) inherits phantom-thread's lesson: the moment answers can be used
against authors, candor dies. The no-individual-dashboards rule needs to
be written into types the way `ScoreCard` did it in phantom-thread, not
into policy. — owner: jdetle
- **Attestation quality is unmeasured.** A one-word statement passes
validation (min length 1). Is rubber-stamp attestation a real failure
mode, and is the walkthrough-sampling idea from phantom-thread the answer
here too? — owner: jdetle