Skip to content

docs(reception): reception panel — a pitch debugger, with its controls - #222

Merged
laurigates merged 2 commits into
mainfrom
docs/reception-panel
Aug 12, 2026
Merged

docs(reception): reception panel — a pitch debugger, with its controls#222
laurigates merged 2 commits into
mainfrom
docs/reception-panel

Conversation

@laurigates

Copy link
Copy Markdown
Owner

What

A reception panel: agents playing real audience roles reading loractl cold, tuned to r/StableDiffusion. Reframed from the original idea on purpose — this is not a confidence oracle, it is a README/pitch debugger. A simulated reviewer saying "I'd star this" cannot supply confidence, because we wrote the prompt. What it can do well is find where the pitch loses a reader and enumerate what people will demand that the repo cannot supply.

Nothing in crates/ changes. This produces evidence, not code.

Result

NEW=12, KNOWN=1, REFUTED=1 against a pre-registration committed before dispatch (9e33234), on a threshold of 3. Every finding was verified against the real repo before it reached the rollup.

The four that decide reception — all product gaps, not doc gaps:

Gap Evidence
No mid-training image preview; output.sample_every > 0 is rejected on the diffusion path diffusion_trainer.rs:325-328
One dataset folder — no per-concept subsets, num_repeats, or regularization images config.rs:439-441
AdamW only — no optimizer choice, LR schedule, or warmup (ss_optimizer is written as metadata) config.rs:515-520
Krea 2 is the only target, and ai-toolkit already trains it alongside ~40 models ai-toolkit/README.md:35

Plus one security-adjacent finding: unauthenticated POST /runs confines output.dir and resume.from, while its own doc comment claims no unvalidated path reaches the trainer — dataset.path and the model.* overrides do (routes.rs:100-124). No ADR covers it.

Seven cheap verified fixes (README says "Three crates" for a four-member workspace, backend list omits candle, precision list omits bf16, presets omit krea2-comfyui, a stale "never executed by any test" comment, a presence-keyed LORACTL_SKIP_GRAD_CHECK, a hand-bumped cache literal) are itemized in the rollup.

Why the controls matter more than the findings

The stated risk was that a panel can be confidently wrong in a way that feels like validation. It happened, and the controls caught it:

  • A persona was discarded, mechanically, at a 67% evidence-drop rate. The drive-by asserted ADR content having seen only ADR filenames in a directory listing — and starred the project on that basis. No judgment call was involved; the collator drops findings without a file:line.
  • A finding was refuted by measurement. One persona claimed removing dropout from LoraLinear::forward "leaves the whole suite green". Applying that exact mutation fails tests/dropout.rs:117 in 2.37s. It re-asserted the claim on second pass; the mutation outranks it.
  • The planted contradiction was caught. The claim auditor's staged README said ~1.8 s/step; it traced that to roadmap.md:314's 4482.18 ms unprompted, so its clean verdict on the real claims is worth something.
  • Tier boundaries were enforced as staged directory trees, not as instructions — tier-0/1 personas physically could not read ADRs, the roadmap, CLAUDE.md, or .claude/. Contamination check: zero hits.

"Is this slop?" — answered mechanically, not by opinion

scripts/slop-metrics.sh, deterministic, calibrated against five comparables:

loractl ripgrep bat sd-scripts ai-toolkit
test fns / kLOC 10.51 8.81 24.20 1.43 0.08
asserts / test 3.46 4.11 2.15 2.69 2.22
trivial-only tests % 0.25 3.34 1.32 2.42 0.00
non-test unwrap / kLOC 4.10 24.48 7.46 0.14 0.13

Two measurement bugs were found and fixed before any number was quoted, both of which produced plausible wrong answers: os.walk discovery counted stale agent worktrees under .claude/ (full repo copies, ~4x inflation — now git ls-files), and a macro-only assertion regex scored loractl at 9% zero-assertion tests when those were the burn tensor-equality proofs using .assert_approx_eq::<f32>(…) — the same bug scored bat at 52%.

Recommendation

Read docs/reception/2026-08-11/rollup.md §7. Short version: the panel surfaced a venue mismatch that was not among the original four questions. What is strongest here — the architectural invariant, numerics pinned against upstream source, the refusal to publish a misleading cross-tool benchmark — are r/rust virtues. What r/SD evaluates on is four "no"s today. Land the cheap fixes, post to r/rust first, and treat mid-training sampling as the gate for r/StableDiffusion.

Reusable shape

.claude/review-harness.yaml holds everything project-specific (pitch, tier globs, comparables, seed definition, persona roster), so pointing this at the ComfyUI packs or FoundryVTT modules means writing one manifest and changing nothing else. Promotion to claude-plugins skills is deliberately deferred until the shape has survived this one real run — which it now has, with the caveat that the drive-by persona needs a stricter evidence rule before it is trustworthy alone.

Verification

  • slop-metrics.sh and collate-reception.sh both byte-identical across two runs
  • Competitor citations spot-checked against the cloned trees — all four real
  • Contamination grep over tier-0/1 reports — zero hits
  • Seeded contradiction caught; mutation test run and reverted (git diff clean)

🤖 Generated with Claude Code

https://claude.ai/code/session_01G2coLedDz1Kv8kfUdb6Rem

laurigates and others added 2 commits August 11, 2026 13:38
The reception panel is a README/pitch debugger, not a confidence oracle. Two
controls make its output falsifiable, and both must exist before dispatch:

- predictions.md pins 10 predictions, each verified against the repo, so every
  finding partitions into KNOWN/NEW/WRONG. If NEW is 0 the harness added
  nothing and should not be run again. Committed before dispatch so it cannot
  be edited post-hoc.
- slop-metrics.sh answers the measurable part of "is this slop?" deterministically
  rather than by opinion, calibrated against ripgrep, bat, sd-scripts,
  ai-toolkit and a scaffold control. Discovery is git ls-files, not os.walk:
  stale agent worktrees under .claude/ are full repo copies and inflated every
  count ~4x. Assertions count both macro and method forms -- a macro-only regex
  scored loractl at 9% zero-assertion tests when the "empty" tests were the
  burn tensor-equality proofs, and scored bat at 52%.

collate-reception.sh enforces the evidence rules mechanically: a finding with
no file:line or quoted string is dropped, and a persona over 50% drop rate is
discarded as instrument failure rather than read as a result.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2coLedDz1Kv8kfUdb6Rem
Ran the five-persona panel against the pre-registration committed in 9e33234.
NEW=12 against a threshold of 3, so the run earned its cost. Every finding was
verified against the real repository before landing in the rollup; the raw
reports are kept as the appendix.

The four that decide reception, all product gaps rather than doc gaps:

- diffusion_trainer.rs:325-328 REJECTS output.sample_every > 0 ("no sample
  path"). There is no mid-training image preview, and the knob that looks like
  it errors out. For this audience that loop IS the product.
- DatasetConfig.path is one PathBuf: no per-concept subsets, num_repeats or
  regularization images.
- OptimConfig exposes lr + weight_decay only; ss_optimizer is written as
  metadata, which reads as support and is not.
- ai-toolkit/README.md:35 already lists krea/Krea-2-Raw, so the single
  supported model is not a differentiator.

Plus an unauthenticated POST /runs that confines output.dir and resume.from
while its own doc comment claims no unvalidated path reaches the trainer;
dataset.path and the model.* overrides do.

What keeps this honest, and matters more than the findings:

- The seeded contradiction was caught (staged README ~1.8 s/step traced to
  roadmap.md:314's 4482.18 ms unprompted), so the auditor's clean verdict on
  the real claims means something.
- The drive-by persona was DISCARDED by the collator at a 67% evidence-drop
  rate. It asserted ADR content having seen only ADR filenames, and starred the
  project on that basis -- the exact "feels like validation" failure the design
  anticipated.
- One finding was refuted by measurement: removing dropout from
  LoraLinear::forward fails tests/dropout.rs:117 in 2.37s, against the claim
  that it leaves the suite green. The persona re-asserted it on second pass;
  the mutation outranks it.
- Calibration shows the drive-by discriminates (three verdicts across three
  repos) but defers to reputation on sd-scripts. On the clean comparison
  against ai-toolkit, loractl's README wins on first contact.

.claude/review-harness.yaml holds everything project-specific so the harness
can be pointed at another repo by writing one manifest.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2coLedDz1Kv8kfUdb6Rem
@laurigates

Copy link
Copy Markdown
Owner Author

Follow-ups filed as issues so they survive this PR being merged and closed:

The remaining items — the seven cheap verified fixes, the dataset-subset and optimizer-selection gaps, and the repo cosmetics — are itemized with evidence in docs/reception/2026-08-11/rollup.md §2 and §4. Not filed individually to avoid an issue backlog nobody reads; say the word and I'll split them out.

@laurigates
laurigates merged commit eb528df into main Aug 12, 2026
4 checks passed
@laurigates
laurigates deleted the docs/reception-panel branch August 12, 2026 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant