research-document

Research Integrity Validation Decision

Research Integrity Validation Decision

Decision

Add tools/repository/validate_research_integrity.py as the canonical dependency-free validator for stable front-matter identifiers, explicit local Markdown links, and structural frontier consistency. Invoke it from the existing evalctl.py repo-audit entry point.

Scope and provenance

This implements the first validation slice of RFR-009 using the canonical rules in knowledge-platform/Metadata-Standard.md and the manifest/graph separation in knowledge-platform/Repository-Architecture.md.

Calibration outcomes and base snapshots under research/evaluation/fixtures/ intentionally retain their source identifier, so those copies are excluded from global collision detection. Authored documents, frontier records, and templates remain included.

Evidence

On 2026-07-30:

  • four seeded tests passed;
  • 38 identifier-bearing authored/template artifacts were inventoried;
  • zero unexplained identifier collisions were found;
  • zero broken explicit local Markdown links were found;
  • 10 frontier records, index entries, and graph nodes agreed;
  • 12 graph edges referenced declared nodes.

The generated observation is preserved at data/validation/research-integrity-inventory.json.

Limits and reversal conditions

This decision does not claim full metadata coverage or semantic provenance validation. Replace or extend the parser if Markdown constructs, relationship metadata, or scale make the dependency-free implementation materially inaccurate. Do not enforce the complete metadata schema until a measured migration policy exists.

2026-08-15 extension

The inventory now measures all required metadata fields overall and by authored artifact class and resolves declared related, legacy related_documents, supersedes, and superseded_by targets by identifier or path. The measured baseline is 131 authored Markdown artifacts, 48 with front matter, and 47 with stable identifiers. All five non-empty declared relationships resolve; no active canonical related or supersession edges exist.

Missing metadata and unresolved declared relationships remain diagnostic rather than blocking. Seven seeded/control tests now calibrate the validator. Generated output and dependency trees are explicitly excluded from authored-document and link checks.