Skip to content

Give a point-level correction its own coordinate verdict - #36

Merged
jdkent merged 1 commit into
mainfrom
feat/edit-verdict
Oct 15, 2026
Merged

jdkent merged 1 commit into
mainfrom
feat/edit-verdict

Conversation

@jdkent

@jdkent jdkent commented Oct 15, 2026

Copy link
Copy Markdown
Member

A reviewer who corrects an analysis's points changes its content key. Examples are a dropped minus sign, a misread value, or a point added to, removed from or moved out of the analysis. No AuditVerdict said "the same analysis, points corrected", so such a correction could only be written as a split with one replacement. This is the third of the PRs for neurostore's review app, after #34 and #35.

What changes

  • The new verdict. AuditVerdict gains edit. Its key changes because its content did, and everything stored against it is copied to its one replacement, as for a split. Point order is not part of the key, so reordering points is not an edit.
  • Descriptions. The AnalysisVerdict and replaced_by descriptions, and the README's revision paragraph, include edit.
  • The check. check_revision refuses an edit that names no replacement, more than one, or itself. An edit naming itself has unchanged content, which is an accept. LinkML rules aren't emitted into the generated JSON Schema or the pydantic models, so the one-replacement rule lives in this check and in the description.
  • The models and JSON Schemas are regenerated.

Tests

  • An edit verdict validates against the pydantic model and the JSON Schema.
  • check_revision accepts a valid edit, and refuses zero keys, None, two keys, and the edit's own key.
  • With linkml 1.12 and pyarty on the path: 119 passed, 1 skipped (pyarrow). generate_models.py --check passes.
  • All 6 mutants of the check and the enum are killed.

For consumers: an ingester treats edit like a one-replacement split. It copies claims to the replacement, leaves the old key out of projections, and maps the old key to the new one. Neurostore's ingester will follow in its own PR.

🤖 Generated with Claude Code

A reviewer who fixes an analysis's points (a dropped minus sign, a
misread value, a point added to, removed from or moved out of it)
changes its content key, but no verdict said "the same analysis, points
corrected", so it could only be written as a split with one
replacement.

AuditVerdict gains edit: its key changes because its content did, and
everything stored against it is copied to its one replacement, as for a
split. check_revision refuses an edit that names no replacement, more
than one, or itself (unchanged content is an accept). Point order is
not part of the key, so reordering points is not an edit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@jdkent jdkent left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jdkent
jdkent merged commit c60f05f into main Oct 15, 2026
4 checks passed
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