Changelog
Every public version is preserved. Append-only.
v0.4.0
The inversion fix (Build 3793, operator live-test 2026-06-12): anchor coverage becomes a semantic constraint-checker, forbidden language becomes a deterministic ban detector with synonym expansion, and unresolved hard-ban violations now CAP the composite. "The most beautiful line that breaks an explicit constraint is the highest-priority defect in the system, not its best output."
- Anchor coverage rebuilt: anchors are judged by SEMANTIC presence (morphological variants, curated synonym groups — "mama" satisfies a "mother" anchor — and number-word equivalence), not lexical echo of the brief; echoing brief words in an abstract line stays mentioned-bare (echo ≠ compliance)
- Forbidden language rebuilt on a deterministic ban detector: each banned phrase compiles into literal, morphological, and curated synonym/paraphrase-expansion rules (a "gravity" ban catches "weightless"; a "mortality" ban catches "remember dissolving"; weekday-category bans catch all named weekdays); every violation reports line number + matched rule + matched text
- Forbidden score recalibrated: 100 − 25 × distinct violated phrases (was 100 − 10 × violations)
- HARD-BAN CAP: unresolved violations cap the fidelity composite at 60 − 10 × (distinct − 1), floored at 20, with a machine-readable banCap reason on the composite; the grade derives from the capped value, so no A can render on an unresolved-ban song
- Reference implementation: the same detector caps the orthogonal QUALITY composite at 60 and structurally bars violating lines from transcendent-line promotion, strength citations, and One Line candidacy
- Audit implementation: FIDELITY_AUDIT_VERSION = 2.0.0 (B3793; major — composite math + component semantics changed)
v0.3.0
Chorus evolution promoted from 5% to 12% raw weight and paired with a deterministic verbatim hard gate.
- Chorus evolution raw weight 0.05 → 0.12 (a static chorus is one of the most audible craft failures; 5% let verbatim repetition hide behind strong anchors)
- VERBATIM HARD GATE: a deterministic chorus-variation detector (pairwise line-identity across chorus blocks) caps the chorus-evolution component at the detector score when 3+ chorus blocks are near-verbatim (two verbatim passes are ordinary songcraft and stay the evolution audit’s call) — LLM judgment cannot override byte-level evidence in the verbatim direction
- The gate never raises a score; songs with genuinely varied or single choruses are untouched
- Raw weight sum is now 1.13; weights normalize over contributing components as before
v0.2.0
Adds the eighth component — register adherence (6% raw weight), null-by-default until a brief explicitly carries a content-rating constraint.
- New component: registerAdherence (clean / mature / explicit content-rating adherence), raw weight 0.06
- Null-by-default: existing songs see no score change (redistribution math unchanged)
- Label later disambiguated to "Content rating adherence" (B3399) to avoid confusion with the SA#32 tone register
v0.1.0
Initial public draft. Seven-component composite. CC BY 4.0. Opened a 7-day public RFC comment window via RFC-0010 (closed 2026-05-26).
- Premise (30%) + anchors (25%) = 55% load-bearing per SA#17
- Constraint-mode multipliers: strict 0.95 / standard 1.0 / loose 1.15
- 8-tier grade calibration A+ through F (checklist-completion semantics)
- Brief complexity 0–10 formula with 3 UX prominence buckets
- Null-component redistribution: sparse briefs never penalized for missing constraints
- Audit implementation: FIDELITY_AUDIT_VERSION = 1.4.0 (B2788)
The Fidelity Standard implementation tracks separately at FIDELITY_AUDIT_VERSION in src/lib/fidelity-audit.ts. The public standard moves on RFC; the audit can move on patches.