Skip to content

v0.11.0 — anti-entrenchment

Choose a tag to compare

@AlexDuchDev AlexDuchDev released this 10 Jun 05:54
· 46 commits to main since this release
dfd4124

The anti-entrenchment release: the compounding loop gains a brake. Promotion
was always judge-gated on the way in; now a promoted answer the community later
turns against is retracted on the way out — measured end-to-end on a live run.
Still drop-in (DB + OPENAI_KEY); the new sweep is off by default.

Added

  • Anti-entrenchment demotion sweep. Closes the feedback-loop's open end. The
    compounding loop promotes a popular, judge-grounded answer into a resolution
    card; this is its brake. The worker sweep (KNOWLEDGE_DEMOTION_ENABLED, default
    off) demotes a promoted card to deprecated once its cluster's aggregate
    feedback score falls to/below a negative floor (DEMOTION_SCORE_THRESHOLD,
    −0.7) over at least DEMOTION_MIN_FEEDBACK (5) signals — so a once-popular
    answer the community later rejects stops surfacing. The card is kept (audit
    trail intact), not deleted. The decision rule (shouldDemote) is pure and
    unit-tested; the sweep is the thin DB executor.
  • Runnable entrenchment eval. scripts/entrenchment-eval.ts proves the
    demotion half end-to-end against a live Postgres — it seeds a promoted card,
    drives its cluster net-negative, runs the sweep, and asserts the card was
    retracted. Deterministic (no LLM), self-cleaning (deletes its seed rows),
    needs only DATABASE_URL. The full-pipeline variant (promoter LLM judge in +
    brake out) remains the next step; documented in docs/evals.md.