Skip to content

feat: heal series grouping and run the audit nightly#7

Merged
vidaks merged 1 commit into
mainfrom
feat/series-grouping-heal
Jun 10, 2026
Merged

feat: heal series grouping and run the audit nightly#7
vidaks merged 1 commit into
mainfrom
feat/series-grouping-heal

Conversation

@vidaks

@vidaks vidaks commented Jun 10, 2026

Copy link
Copy Markdown
Owner

The series audit only fixed series numbers and was deliberately kept out of the daily sweep. It now also repairs grouping, the other half of the series problem: books that fall out of their series because grimmory has no series_name (series-name-missing) or holds a stale variant name the book title still corroborates (series-name-variant). Both heal to the canonical edition so the server re-derives name + number — the same proven recipe as a number mismatch, skipped when the field is locked or already canonical.

A true mis-seed (series name AND title both disagree with the hcid) still defers to the resolver, which validates the identity before locking.

Wired into maintain as a third guarded phase; a per-run cap (UNGROUPED_LIMIT) walks the ungrouped survey nightly.

What & why

Checklist

  • Discussed in an issue first (for non-trivial changes)
  • No new runtime dependencies (standard library only)
  • Preserves the safety model (dry-run default, files never touched, LLM only
    adjudicates over validated candidates, every write logged)
  • python -m compileall colophon passes; ruff check . is clean
  • Updated README.md / CHANGELOG.md if behavior changed
  • Tested against a real server with dry-run (no --apply); output pasted below

Notes / test output

The series audit only fixed series numbers and was deliberately kept out of
the daily sweep. It now also repairs grouping, the other half of the series
problem: books that fall out of their series because grimmory has no
series_name (series-name-missing) or holds a stale variant name the book
title still corroborates (series-name-variant). Both heal to the canonical
edition so the server re-derives name + number — the same proven recipe as a
number mismatch, skipped when the field is locked or already canonical.

A true mis-seed (series name AND title both disagree with the hcid) still
defers to the resolver, which validates the identity before locking.

Wired into maintain as a third guarded phase; a per-run cap (UNGROUPED_LIMIT)
walks the ungrouped survey nightly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vidaks vidaks merged commit 8635f52 into main Jun 10, 2026
4 checks passed
@vidaks vidaks deleted the feat/series-grouping-heal branch June 10, 2026 12:13
vidaks added a commit that referenced this pull request Jul 9, 2026
The series audit only fixed series numbers and was deliberately kept out of
the daily sweep. It now also repairs grouping, the other half of the series
problem: books that fall out of their series because grimmory has no
series_name (series-name-missing) or holds a stale variant name the book
title still corroborates (series-name-variant). Both heal to the canonical
edition so the server re-derives name + number — the same proven recipe as a
number mismatch, skipped when the field is locked or already canonical.

A true mis-seed (series name AND title both disagree with the hcid) still
defers to the resolver, which validates the identity before locking.

Wired into maintain as a third guarded phase; a per-run cap (UNGROUPED_LIMIT)
walks the ungrouped survey nightly.
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.

1 participant