Skip to content

Bundled generic contrast, shown as indicative likeness (onboarding plan WP-10b) - #50

Draft
wangjohn wants to merge 7 commits into
mainfrom
claude/wp-10b-generic-contrast
Draft

wangjohn wants to merge 7 commits into
mainfrom
claude/wp-10b-generic-contrast

Conversation

@wangjohn

@wangjohn wangjohn commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

What and why

WP-10b of plans/retry-wp1-wp10.md: a second attempt at bundled generic contrast. 60 original drafts (6 registers × 10, 15 per length band) in src/styleprofile/data/generic-contrast/; build --generic-contrast / generic_contrast=True; the contrast anchor (median, min, AUC) is computed leaving out a whole register at a time. Report 9.1 (optional settings.generic_contrast).

Commit order: design section, data sets and bars in docs/method.md (b0c06dd) → code + corpus → corpus/code frozen (7bceb21) → test set read once → results → follow-ups dc45b26 and 949b2fd (below).

Draft: the one-shot test misses one bar (length alone). Nothing about the corpus, anchor or bars was changed after seeing the test set. Because of the miss, generic-contrast likeness is shown as an indicative number with no verdict words (the plan's suggested alternative):

  • score: generic LLM-likeness (indicative): 13.08; no verdict column or "most like" chunk list.
  • score -q: … generic LLM likeness (indicative) 13.08.
  • --fail-likeness refuses a generic profile.
  • Library: ScoreResult.indicative / DocumentResult.indicative are True for generic contrast (docs/library.md).
  • Reports still store the verdicts, so the evaluation is reproducible.
  • The contrast label is generic LLM (changed from the plan's "generic LLM drafts", which read "…drafts drafts").

Evidence

Bar Result
Dev: 5/5 examples/llm-drafts lean LLM or beyond 5/5 met
Test: ≥13/16 lean LLM or beyond 14/16 met
Test: AUC vs writer held-out ≥ 0.90 1.000 met
Test: length alone ≤ 0.70 0.850 (0.545 vs the 7 essays only) not met
Writer: ≥95% "like the reference" 45/47 (95.7%) met

Full per-draft table in docs/method.md. The plan's corpus length check against medium (AUC ≤ 0.70) is unreachable by construction (every medium doc has 711–1,363 words; bound ≥0.77, measured 0.81), which also explains the test's length miss.

Profiles built without generic contrast are byte-identical to main's apart from minor_version. make check (922 passed), make demo, make dist-check, make snapshots (no diff) and the bench gate pass.

Tests

tests/test_generic_contrast.py (corpus shape/bands/size/licence, labelling, --contrast combination, CLI flag, group folds, indicative display, quiet line, library flag, --fail-likeness refusal); schema test; scripts/check_dist.py checks the 60 drafts in the wheel and an installed smoke build.

Decisions

  • Register folders are separate folder inputs, so pooling never mixes registers; group = generic:<register>, else the document.
  • Indicative-only display chosen over a verdict feature; label changed to generic LLM on review.

Follow-ups

  • A corrected, length-matched test with fresh held-out drafts would be needed before verdict words are justified.
  • The chunk "flagged" count still includes chunks flagged by generic likeness (the words are hidden).

🤖 Generated with Claude Code

https://claude.ai/code/session_01QyXhSxvDMHzrqSoTVM6Vfn

@wangjohn wangjohn changed the title Bundled generic contrast with register folds (onboarding plan WP-10b) Bundled generic contrast, shown as indicative likeness (onboarding plan WP-10b) Oct 14, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants