Skip to content

feat(data): add official-vs-GitHub reconciliation reports #108

Description

@JSONbored

Parent roadmap: #82

Background

Official Gittensor stats and raw GitHub history can disagree. Gittensory must explain discrepancies without inflating contributor evidence.

Goal

Add reconciliation reports comparing official Gittensor API totals with cached GitHub context.

Current Behavior

Gittensory prefers official stats when available, but discrepancy explanations are not surfaced as a first-class report.

Desired Behavior

Private profile/decision outputs show official totals, cached context, discrepancy reasons, and maintainer-lane separation.

Implementation Requirements

  • Compare official totals with GitHub cached PR/issue counts.
  • Identify maintainer-owned repo history.
  • Explain lookback, closed/open, stale, and source-unavailable cases.
  • Keep official source authoritative for miner-recognized totals.
  • Add freshness metadata.

Public/Private Output Boundaries

Signal data can inform private API/MCP outputs. Public GitHub output must use only sanitized, maintainer-friendly summaries and must not expose private scoreability or contributor scoring internals.

Acceptance Criteria

  • Official totals win when present.
  • GitHub history is labeled context.
  • Maintainer-owned repos do not inflate miner totals.
  • Discrepancies are explained privately.

Testing Requirements

  • npm run test:ci must pass.
  • Global coverage must remain at or above 97% for lines, statements, functions, and branches.
  • Aim for 98%+ branch coverage locally to avoid CI variance.
  • Add tests for every new branch, fallback path, sanitizer rule, and regression.
  • Add invariant/property-style tests when behavior depends on sorting, gating, scoring, queue pressure, source-upload safety, public/private boundaries, or upstream drift.
  • Public GitHub output must be tested against forbidden language: wallet, hotkey, raw trust score, payout, reward estimate, farming, private reviewability, and public score estimate.
  • MCP/local tooling must prove source contents are not uploaded.

Additional Test Scenarios

  • Official-vs-cache mismatch fixture.
  • Maintainer repo fixture.
  • API unavailable fallback.
  • Deterministic explanation ordering.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions