Skip to content

Schema: record completeness flag and per-field verified-absent markers #55

Description

@DutchJaFO

Add two complementary data quality fields to quote, character, source, and person records.

The problem

Currently null on a nullable field is ambiguous: it means both "not yet investigated" and "we looked and no value exists." Enrichment providers cannot distinguish between the two, so they repeatedly attempt to fill fields that have no answer. The UI also cannot distinguish records that are genuinely finished from records that just haven't been worked on yet.

Two new fields

isComplete: bool (default false)

A human-set flag meaning "I have reviewed this record and I am satisfied with it." Set manually in the management UI — never set automatically by enrichment or import.

noValueKnown: string[] (default [])

A list of field names that have been confirmed as having no findable value. Examples:

"noValueKnown": ["date", "character"]

Meaning: a date for this quote has been researched and genuinely does not exist in any source; and there is no named character (e.g. it is a voiceover or narration).

  • Enrichment providers skip any field listed here — do not attempt a lookup
  • The UI shows a "No value known" indicator next to each affected field instead of leaving it blank
  • Users can set and unset entries via the management UI per field
  • A record can be isComplete: false with some noValueKnown entries — still being worked on, but certain fields are confirmed empty
  • A record can be isComplete: true with noValueKnown entries — fully reviewed; those fields just have no answer

UI behaviour

In the quote detail/edit page:

  • Each nullable field (date, character, author, genres, etc.) has a "Mark as no value known" action alongside its input
  • Fields with a noValueKnown entry render a distinct visual state (e.g. a strikethrough placeholder or a "—" badge) rather than an empty input
  • A "Mark complete" button sets isComplete: true; the record is visually distinguished in the list

Applies to

All four entity types: quotes, characters, sources, persons. The specific fields that are meaningful to mark as noValueKnown differ by type (e.g. date is relevant on all; character only on quotes).

Notes

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions