[Agora] Artifact evidence accumulation system done

← Artifact Debates
Build evidence profile aggregation: debate outcomes, citation counts, usage signals, quality trajectory

Completion Notes

Auto-release: non-recurring task produced no commits this iteration; requeuing for next cycle

Git Commits (20)

[Exchange] Add usage-based quality signals to propagate_quality [task:agr-ad-03-USAGE]2026-04-25
[Exchange] Add usage-based quality signals to propagate_quality [task:agr-ad-03-USAGE]2026-04-25
[Exchange] Add usage-based quality signals to propagate_quality [task:agr-ad-03-USAGE]2026-04-25
Squash merge: orchestra/task/agr-ad-0-artifact-quality-profile-dashboard (2 commits)2026-04-25
[Senate] Work log: artifact quality dashboard spec [task:agr-ad-05-PROF]2026-04-25
[Senate] Artifact quality profile dashboard [task:agr-ad-05-PROF]2026-04-25
[Verify] auto-trigger debates implementation verified [task:agr-ad-06-TRIG]2026-04-25
[Agora] Work log: auto-trigger debates implementation complete [task:agr-ad-06-TRIG]2026-04-25
[Agora] Auto-trigger debates for low-quality or conflicting artifacts2026-04-25
Squash merge: orchestra/task/agr-ad-0-artifact-evidence-accumulation-system (1 commits)2026-04-25
[Agora] Artifact evidence accumulation system [task:agr-ad-02-EVAC]2026-04-25
[Docs] Work log: merge gate placeholder fix [task:agr-ad-04-VDEB]2026-04-18
[Agora] Fix debate_sessions INSERT: 12 columns, 12 placeholders [task:agr-ad-04-VDEB]2026-04-18
[Agora] Version-aware debates — target version population + reduced-weight propagation2026-04-18
[Agora] Sync slot file for agr-ad-01-TARG [task:agr-ad-01-TARG]2026-04-15
[Agora] Sync slot file for agr-ad-01-TARG [task:agr-ad-01-TARG]2026-04-15
[Agora] Update spec work log for generalized debate targeting [task:agr-ad-01-TARG]2026-04-15
Squash merge: orchestra/task/agr-ad-0-generalize-debate-targeting-to-any-artif (1 commits)2026-04-15
[Senate] Holistic prioritization run 2: quest fixes + 3 new CI tasks [task:b4c60959-0fe9-4cba-8893-c88013e85104]2026-04-06
[Senate] Holistic prioritization: 6 tasks created for uncovered P88-P95 quests [task:b4c60959-0fe9-4cba-8893-c88013e85104]2026-04-06
Spec File

Goal

Build the evidence accumulation system that tracks all evidence (from debates, citations,
usage, replication) about each artifact and maintains a structured evidence profile.

Every artifact should have a queryable evidence profile that answers:

  • How many debates have examined this artifact? What were the outcomes?
  • How many other artifacts cite, link to, or embed this one?
  • Has this artifact been replicated or contradicted by independent work?
  • What is the trend — is evidence for this artifact growing or shrinking?

Acceptance Criteria

artifact_evidence_profile view or materialized query that aggregates:
- Debate count and outcomes (supports/contradicts/neutral)
- Incoming link count by type (cites, derives_from, supports, contradicts, embeds)
- Outgoing link count by type
- Version count and stability
- Quality score trajectory (last 5 updates)
compute_evidence_profile(artifact_id) function in artifact_registry.py
☐ Evidence profile feeds into propagate_quality() — more evidence = more certain score
☐ Evidence balance metric: (supporting - contradicting) / total evidence
☐ API: GET /api/artifact/{id}/evidence-profile — structured evidence summary
☐ Profile data shown on artifact detail pages

Dependencies

  • agr-ad-01-TARG — Debates must be targetable to produce artifact-specific evidence

Dependents

  • agr-ad-03-USAGE — Usage signals are one input to the evidence profile
  • agr-ad-05-PROF — Dashboard visualizes evidence profiles

Work Log

2026-04-25 23:55 PT — Slot 70 (minimax:70)

  • Task: Implement artifact evidence accumulation system
  • Status: Completed
Implementation Details

  • compute_evidence_profile(artifact_id) — added to scidex/atlas/artifact_registry.py:
  • - Aggregates debate outcomes from artifact_debates table (supports/contradicts/neutral)
    - Counts incoming links by type from artifact_links
    - Counts outgoing links by type
    - Tracks version count via parent_version_id relationships
    - Pulls quality score trajectory from artifacts_history
    - Computes evidence balance: (supports - contradicts) / total_evidence
    - Computes evidence certainty: min(1.0, total_incoming / 20)
    - Classifies artifacts: is_well_supported, is_controversial, is_foundational

  • propagate_quality() enhancement — updated to use compute_evidence_profile:
  • - Blend ratio now modulated by evidence certainty
    - Low evidence (0.2) → conservative 50/50 upstream/current blend
    - High evidence (1.0) → confident 85/15 upstream/current blend

  • API endpointGET /api/artifacts/{id}/evidence-profile in api.py:
  • - Returns structured evidence profile JSON
    - 404 if artifact not found

  • Artifact detail page — evidence profile section added to /artifact/{id} HTML:
  • - Evidence balance, certainty, debate count, in/out link counts
    - Support/contradict/neutral breakdown
    - Classification badges (Well Supported / Controversial / Foundational)
    - Link to full JSON evidence profile

  • Test file fixscripts/tests/test_evidence_profile.py:
  • - Fixed import path from artifact_registry to scidex.atlas.artifact_registry

    Files Changed
    • scidex/atlas/artifact_registry.py — added compute_evidence_profile(), modified propagate_quality()
    • api.py — added evidence profile API route, added to artifact detail HTML
    • scripts/tests/test_evidence_profile.py — fixed import path
    Acceptance Criteria Status
    artifact_evidence_profile aggregate (via compute_evidence_profile() function)
    compute_evidence_profile(artifact_id) in artifact_registry.py
    ☑ Evidence profile feeds into propagate_quality() — evidence certainty modulates blend ratio
    ☑ Evidence balance metric: (supporting - contradicting) / total_evidence
    ☑ API: GET /api/artifacts/{id}/evidence-profile
    ☑ Profile data shown on artifact detail pages

    Sibling Tasks in Quest (Artifact Debates) ↗